Вход Регистрация
Файл: app/Http/Controllers/CampaignController.php
Строк: 1005
<?php

namespace AppHttpControllers;

use 
AppModelsCampaignTempModel;
use 
AppModelsCardModel;
use 
AppModelsCardUserModel;
use 
AppModelsUserModel;
use 
AppServicesServices;
use 
IlluminateHttpRequest;
use 
Auth;
use 
AppModelsCampaignRankModel;
use 
Session;

class 
CampaignController extends Controller
{
    public function 
index()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        
$nextRank CampaignRankModel::where('rank', (Auth::user()->campaign_rank+1))->first();
        if(
$campaignChapter[1] == '0')
        {
            return 
view('game.campaign.index', ['cc' => $campaignChapter'rank' => $nextRank]);
        }
        else
        {
            
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
            
$campaignUser json_decode(Auth::user()->campaign_temp);
            if(
$campaignInfo['type'] == 'raid')
            {
                
$campaignT CampaignTempModel::where('user'Auth::user()->id)->first();
                if(isset(
$campaignT)) return redirect('/campaign/battle');
                if(
$campaignUser->battle == && $campaignUser->cooldown <= time())
                {
                    
$campaignUser->battle 1;
                    
$campaignUser->cooldown 0;
                    
$user UserModel::find(Auth::user()->id);
                    
$user->campaign_temp json_encode($campaignUser);
                    
$user->save();
                    return 
redirect('/campaign');
                }
                if(
count((array) $campaignUser->enemies_left) == 1)
                {
                    
$user UserModel::find(Auth::user()->id);
                    
$campaignUser->complete 1;
                    
$user->campaign_temp json_encode($campaignUser);
                    
$user->save();
                    return 
redirect('/campaign/next');
                }
            }
            elseif(
$campaignInfo['type'] == 'village')
            {
                if(
$campaignUser->count >= 160)
                {
                    
$user UserModel::find(Auth::user()->id);
                    
$campaignUser->complete 1;
                    
$user->campaign_temp json_encode($campaignUser);
                    
$user->save();
                    return 
redirect('/campaign/next');
                }
            }
            elseif(
$campaignInfo['type'] == 'opposition')
            {
                if(
$campaignUser->cooldown <= time() && $campaignUser->find == 0)
                {
                    
$campaignUser->find 1;
                    
$user UserModel::find(Auth::user()->id);
                    
$user->campaign_temp json_encode($campaignUser);
                    
$user->save();
                    return 
redirect('/campaign');
                }
                if(
$campaignUser->complete == 1) return redirect('/campaign/next');
                if(
$campaignUser->battle == && $campaignUser->destruct_cooldown time())
                {
                    if(
$campaignUser->myHealth && $campaignUser->enemyHealth <= 0) return self::oppositionResult('win');
                    elseif(
$campaignUser->myHealth <= && $campaignUser->enemyHealth 0) return self::oppositionResult('lose');
                    elseif(
$campaignUser->myHealth <= && $campaignUser->enemyHealth <= 0) return self::oppositionResult('lose');
                }
            }
            return 
view('game.campaign.process', ['ci' => (object) $campaignInfo'cu' => (object) $campaignUser'rank' => $nextRank]);
        }
    }

    public function 
start($campaign)
    {
        if(
Auth::user()->campaign_stage != $campaign.'.0') return back();
        
$campaignInfo config('campaign.chapter'.$campaign.'.stage1');
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_stage $campaign.'.1';
        
$user->campaign_temp json_encode($campaignInfo['user']);
        
$user->save();
        return 
redirect('/campaign');
    }

    public function 
next()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        if(
$campaignUser->complete == 1)
        {
            
$nextStage explode('.'$campaignInfo['next']);
            
$nextStageInfo config('campaign.chapter'.$nextStage[0].'.stage'.$nextStage[1]);
            
$user UserModel::find(Auth::user()->id);
            
$user->campaign_stage $campaignInfo['next'];
        
$nextStageInfoUser $nextStageInfo['user'];
            
$nextStageInfoUser['cooldown'] = time()+60*$campaignInfo['cooldown'];
            
$user->campaign_temp json_encode($nextStageInfoUser);
        if(
$campaignInfo['type'] == 'text-with-reward')
            {
                
$user->exp += $campaignInfo['reward']['exp'];
if(isset(
$campaignInfo['reward']['diamonds'])) $user->diamonds += $campaignInfo['reward']['diamonds'];
               if(isset(
$campaignInfo['reward']['campaign_exp'])) $user->campaign_exp += $campaignInfo['reward']['campaign_exp'];
                
$user->valmers += $campaignInfo['reward']['valmers'];
            }
            
$user->save();
            return 
redirect('/campaign');
        }
    }

    public function 
raid()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return redirect('/campaign');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->first();
        if(
$campaignT != null) return redirect('/campaign/battle');
        if(
$campaignUser->raid != 0) return redirect('/campaign');
        
$enemiesLeft = (array) $campaignUser->enemies_left;
        
$randEnemy array_rand($enemiesLeft);
        
$campaignUser->raid 1;
        
$campaignUser->cooldown time()+3600;
        if(
count($enemiesLeft) >= 7)
        {
            
$campaignUser->enemy $enemiesLeft[$randEnemy];
        }
        else
        {
            
$campaignUser->enemy $campaignUser->enemies_left->{$randEnemy};
        }
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
redirect('/campaign');
    }

    public function 
startBattle()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->first();
        if(
$campaignUser->raid == || $campaignUser->battle == 0) return redirect('/campaign');
        if(isset(
$campaignT)) return redirect('/campaign/battle');
        if(isset(
$campaignUser->battle) || $campaignUser->battle == 1)
        {
            
$mob $campaignInfo['enemies'][$campaignUser->enemy];
            
$info = [
                
'health' => $mob['health'],
                
'card' => $mob['card'],
                
'myCard1' => 0,
                
'cooldown1' => 0,
                
'myHealth1' => 0,
                
'myCard2' => 0,
                
'cooldown2' => 0,
                
'myHealth2' => 0
            
];
            
CampaignTempModel::create([
                
'user' => Auth::user()->id,
                
'info' => json_encode($info)
            ]);
            return 
redirect('/campaign/battle');
        }
        return 
back();
    }

    public function 
battle()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->firstOrFail();
        
$campaignTemp json_decode($campaignT->info);
        if(!isset(
$campaignUser->battle) && $campaignUser->battle == 0) return back();
        if((
$campaignTemp->myCard1 == && $campaignTemp->myCard2 == 0) || ($campaignTemp->myCard1 && $campaignTemp->myCard2 == 0)) return redirect('/campaign/pick');
        
$card1 CardModel::find($campaignTemp->card);
        
$card2 CardUserModel::with('getCardInfo')->findOrFail($campaignTemp->myCard1);
        
$card3 CardUserModel::with('getCardInfo')->findOrFail($campaignTemp->myCard2);
        if((
$campaignTemp->myHealth1 || $campaignTemp->myHealth2 0) && $campaignTemp->health <= 0$status 'win';
        elseif((
$campaignTemp->myHealth1 <= && $campaignTemp->myHealth2 <= 0) && $campaignTemp->health 0$status 'lose';
        elseif(
$campaignTemp->myHealth1 <= && $campaignTemp->myHealth2 <= && $campaignTemp->health <= 0$status 'lose';
        else 
$status 'battle';
        if(
$status != 'battle')
        {
            
$user UserModel::find(Auth::user()->id);
            if(
$status == 'win')
            {
                
$user->wins++;
                
$user->valmers += $campaignInfo['enemies'][$campaignUser->enemy]['reward']['valmers'];
                
$user->exp += $campaignInfo['enemies'][$campaignUser->enemy]['reward']['exp'];
                
$user->campaign_exp += $campaignInfo['enemies'][$campaignUser->enemy]['reward']['campaign_exp'];
                if(
$campaignUser->enemy != 7)
                {
                    
$enemiesLeft = (array) $campaignUser->enemies_left;
                    
$key array_search($campaignUser->enemy$enemiesLeft);
                    if(
count($enemiesLeft) >= 7)
                    {
                        unset(
$enemiesLeft[$key]);
                        
$campaignUser->enemies_left $enemiesLeft;
                    }
                    else unset(
$campaignUser->enemies_left->{$key});
                    
$result $campaignInfo['text_if_success'];
                    
$result .= ' Награда:'.$campaignInfo['enemies'][$campaignUser->enemy]['reward']['valmers'].' вальмер, ';
                    
$result .= $campaignInfo['enemies'][$campaignUser->enemy]['reward']['exp'].' монет и ';
                    
$result .= $campaignInfo['enemies'][$campaignUser->enemy]['reward']['campaign_exp'].' опыта кампании!';
                }
                else
                {
                    
$result $campaignInfo['text_if_success_pupil'];
                    
$result .= ' Награда:'.$campaignInfo['enemies'][$campaignUser->enemy]['reward']['valmers'].' вальмер, ';
                    
$result .= $campaignInfo['enemies'][$campaignUser->enemy]['reward']['exp'].' монет и ';
                    
$result .= $campaignInfo['enemies'][$campaignUser->enemy]['reward']['campaign_exp'].' опыта кампании!';
                }
            }
            else
            {
                
$result $campaignInfo['text_if_fail'];
                
$user->loses++;
            }
            
$campaignUser->enemy 0;
            
$campaignUser->raid 0;
            
$campaignUser->battle 0;
            
$user->campaign_temp json_encode($campaignUser);
            
$user->save();
            
$campaignT->delete();
            
Session::put('result'$result);
            return 
redirect('/campaign');
        }
        return 
view('game.campaign.battle', ['ci' => $campaignInfo"cu" => $campaignUser'ct' => $campaignTemp'c1' => $card1'c2' => $card2'c3' => $card3]);
    }

    public function 
attack($card)
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->firstOrFail();
        
$campaignTemp json_decode($campaignT->info);
        
$cooldown 'cooldown'.$card;
        
$myHealth 'myHealth'.$card;
        
$myCard 'myCard'.$card;
        if(
$campaignTemp->$cooldown time()) return back();
        if(!isset(
$campaignUser->battle) && $campaignUser->battle == 0) return back();
        if(
$campaignTemp->$myCard == 0) return redirect('/campaign/pick');
        
$card CardUserModel::with('getCardInfo')->findOrFail($campaignTemp->$myCard);
        
$myDamage Services::getCardDamage(round($card->getCardInfo->min_attack+Services::getUpgradeBonus($card->getCardInfo->min_attack$card->upgrade_level)), round($card->getCardInfo->min_attack+Services::getUpgradeBonus($card->getCardInfo->min_attack$card->upgrade_level)), $campaignInfo['enemies'][$campaignUser->enemy]['armor']);
        
$botDamage Services::getCardDamage(($campaignInfo['enemies'][$campaignUser->enemy]['attack']-20), $campaignInfo['enemies'][$campaignUser->enemy]['attack'], round($card->getCardInfo->armor+Services::getUpgradeBonus($card->getCardInfo->armor$card->upgrade_level)));
        
$campaignTemp->health -= $myDamage;
        
$campaignTemp->$myHealth -= $botDamage;
        
$campaignTemp->$cooldown time()+$card->getCardInfo->cooldown;
        
$campaignT->info json_encode($campaignTemp);
        
$campaignT->save();
        return 
back();
    }

    public function 
pick()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        if(!isset(
$campaignUser->battle) && $campaignUser->battle == 0) return back();
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->firstOrFail();
        
$campaignTemp json_decode($campaignT->info);
        if(
$campaignTemp->myCard1 && $campaignTemp->myCard2 0) return redirect('/campaign/battle');
        if(
$campaignTemp->myCard1 0$myCards CardUserModel::with('getCardInfo')->where('id''<>'$campaignTemp->myCard1)->where('user'Auth::user()->id)->where('status''redeemed')->paginate(10);
        else 
$myCards CardUserModel::with('getCardInfo')->where('user'Auth::user()->id)->where('status''redeemed')->paginate(10);
        return 
view('game.campaign.pick', ['cards' => $myCards'ct' => $campaignTemp]);
    }

    public function 
pickCard($id)
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignT CampaignTempModel::where('user'Auth::user()->id)->firstOrFail();
        
$campaignTemp json_decode($campaignT->info);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        if(!isset(
$campaignUser->battle) && $campaignUser->battle == 0) return back();
        if(
$campaignTemp->myCard1 && $campaignTemp->myCard2 0) return redirect('/campaign/battle');
        
$card CardUserModel::with('getCardInfo')->findOrFail($id);
        if(
$campaignTemp->myCard1 == $id) return back();
        if(
$campaignTemp->myCard1 0)
        {
            
$campaignTemp->myCard2 $id;
            
$campaignTemp->myHealth2 round($card->getCardInfo->health+Services::getUpgradeBonus($card->getCardInfo->health$card->upgrade_level));
        }
        else
        {
            
$campaignTemp->myCard1 $id;
            
$campaignTemp->myHealth1 round($card->getCardInfo->health+Services::getUpgradeBonus($card->getCardInfo->health$card->upgrade_level));
        }
        
$campaignT->info json_encode($campaignTemp);
        
$campaignT->save();
        return 
redirect('/campaign/battle');
    }

    public function 
up()
    {
        
$nextRank CampaignRankModel::where('rank', (Auth::user()->campaign_rank+1))->first();
        if(
Auth::user()->campaign_exp $nextRank->exp) return back();
        
$message 'Ранг повышен! Получено: '.$nextRank->reward.' вальмер!';
        
$user UserModel::find(Auth::user()->id);
        
$user->valmers += $nextRank->reward;
        
$user->campaign_exp 0;
        
$user->campaign_rank++;
        
$user->save();
        return 
back()->with('ok'$message);
    }

    public function 
findVillage()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        if(
Auth::user()->campaign_stage != '2.2') return redirect('/');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$attackChance rand(1,10);
        if(
$attackChance == 9$village rand(7,9);
        else 
$village $campaignUser->next_village;
        
$campaignUser->cooldown time()+3600;
        
$campaignUser->find 1;
        if(
$campaignUser->village == 0)
        {
            
$campaignUser->village $village;
            
$campaignUser->next_village++;
        }
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
back()->with('ok''Поиск деревни начался!');
    }

    public function 
startAttackVillage()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        if(
Auth::user()->campaign_stage != '2.2') return redirect('/');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser->battle 1;
        
$campaignUser->villageHealth $campaignInfo['villages'][$campaignUser->village]['health'];
        
$campaignUser->attacks $campaignInfo['villages'][$campaignUser->village]['max_attacks'];
        
$campaignUser->myAttack Services::getAllParameters('attack'Auth::user()->id);
        
$campaignUser->myHealth Services::getAllParameters('health'Auth::user()->id);
        
$campaignUser->myArmor Services::getAllParameters('armor'Auth::user()->id);
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
redirect('/campaign');
    }

    public function 
leaveVillage()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        if(
Auth::user()->campaign_stage != '2.2') return redirect('/');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignUser->find 0;
        
$campaignUser->village 0;
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
back()->with('ok''Вы обошли деревню!');
    }

    public function 
attackVillage()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        if(
Auth::user()->campaign_stage != '2.2') return redirect('/');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        if(
$campaignUser->attacks <= 0) return back()->with('error''Недостаточно ударов!');
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$myDamage Services::getCardDamage($campaignUser->myAttack$campaignUser->myAttack$campaignInfo['villages'][$campaignUser->village]['armor']);
        
$villageDamage $campaignInfo['villages'][$campaignUser->village]['attack'] > Services::getCardDamage($campaignInfo['villages'][$campaignUser->village]['attack'], $campaignInfo['villages'][$campaignUser->village]['attack'], $campaignUser->myArmor) : 0;
        
$campaignUser->myHealth -= $villageDamage;
        
$campaignUser->villageHealth -= $myDamage;
        
$campaignUser->attacks--;
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        if(
$campaignUser->villageHealth <= && $campaignUser->myHealth 0)
        {
            
$message 'Деревня разрушена! Получено: '.$campaignInfo['villages'][$campaignUser->village]['reward']['count'].' эйронита, '.$campaignInfo['villages'][$campaignUser->village]['reward']['exp'].' монет и '.$campaignInfo['villages'][$campaignUser->village]['reward']['campaign_exp'].' опыта кампании!';
            
$campaignUser->count += $campaignInfo['villages'][$campaignUser->village]['reward']['count'];
            
$user UserModel::find(Auth::user()->id);
            
$user->campaign_exp += $campaignInfo['villages'][$campaignUser->village]['reward']['campaign_exp'];
            
$user->exp += $campaignInfo['villages'][$campaignUser->village]['reward']['exp'];
            
$campaignUser->find 0;
            
$campaignUser->battle 0;
            
$campaignUser->village 0;
            
$user->campaign_temp json_encode($campaignUser);
            
$user->save();
            return 
back()->with('ok'$message);
        }
        elseif(
$campaignUser->villageHealth && $campaignUser->myHealth <= 0)
        {
            
$message 'Карты разрушены жителями деревни! Получено: '.round($campaignInfo['villages'][$campaignUser->village]['reward']['exp']/20).' монет и '.round($campaignInfo['villages'][$campaignUser->village]['reward']['campaign_exp']/20).' опыта кампании!';
            
$user UserModel::find(Auth::user()->id);
            
$user->campaign_exp += round($campaignInfo['villages'][$campaignUser->village]['reward']['campaign_exp']/20);
            
$user->exp += round($campaignInfo['villages'][$campaignUser->village]['reward']['exp']/20);
            
$campaignUser->find 0;
            
$campaignUser->battle 0;
            
$campaignUser->village 0;
            
$user->campaign_temp json_encode($campaignUser);
            
$user->save();
            return 
back()->with('ok'$message);
        }
        return 
back();
    }

    public function 
startOpposition()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        if(
Auth::user()->campaign_stage != '3.2') return redirect('/');
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        if(
$campaignUser->find == 0) return back();
        
$campaignUser->destruct_cooldown time()+60;
        
$campaignUser->myHealth Services::getAllParameters('health'Auth::user()->id);
        
$campaignUser->enemyHealth $campaignInfo['enemies'][$campaignUser->enemy]['health'];
        
$campaignUser->battle 1;
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
redirect('/campaign');
    }

    public function 
attackEnemy()
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        if(
Auth::user()->campaign_stage == $campaignChapter[0].'0') return back();
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        if(
$campaignUser->attackCooldown >= time()) return back()->with('error''Откат!');
        
$attack Services::getAllParameters('attack'Auth::user()->id);
        
$armor Services::getAllParameters('armor'Auth::user()->id);
        
$myDamage Services::getCardDamage($attack$attack$campaignInfo['enemies'][$campaignUser->enemy]['armor']);
        
$botDamage Services::getCardDamage($campaignInfo['enemies'][$campaignUser->enemy]['attack'], $campaignInfo['enemies'][$campaignUser->enemy]['attack'], $armor);
        if(
$campaignUser->myHealth && $campaignUser->enemyHealth <= 0) return self::oppositionResult('win');
        elseif(
$campaignUser->myHealth <= && $campaignUser->enemyHealth 0) return self::oppositionResult('lose');
        elseif(
$campaignUser->myHealth <= && $campaignUser->enemyHealth <= 0) return self::oppositionResult('lose');
        
$campaignUser->enemyHealth -= $myDamage;
        
$campaignUser->myHealth -= $botDamage;
        
$campaignUser->attackCooldown time()+3;
        
$user UserModel::find(Auth::user()->id);
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        return 
back();
    }

    public function 
oppositionResult($result)
    {
        
$campaignChapter explode('.'Auth::user()->campaign_stage);
        
$campaignInfo config('campaign.chapter'.$campaignChapter[0].'.stage'.$campaignChapter[1]);
        
$campaignUser json_decode(Auth::user()->campaign_temp);
        
$user UserModel::find(Auth::user()->id);
        if(
$result == 'win')
        {
            if(
$campaignUser->enemy 4)
            {
                
$campaignUser->enemy++;
                
$campaignUser->myHealth Services::getAllParameters('health'Auth::user()->id);
                
$campaignUser->enemyHealth $campaignInfo['enemies'][$campaignUser->enemy]['health'];
                
$campaignUser->attackCooldown 0;
                
$user->campaign_exp += $campaignInfo['enemies'][$campaignUser->enemy]['reward']['campaign_exp'];
                
$user->valmers += $campaignInfo['enemies'][$campaignUser->enemy]['reward']['valmers'];
                
$message 'Враг уничтожен!';
            }
            else
            {
                
$campaignUser->complete 1;
                
$message 'Вы уничтожили всех врагов!';
            }
        }
        else
        {
            
$campaignUser->cooldown time()+1800;
            
$campaignUser->enemy 1;
            
$campaignUser->battle 0;
            
$campaignUser->find 0;
            
$campaignUser->myHealth Services::getAllParameters('health'Auth::user()->id);
            
$message 'Вы потерпели поражение!';
        }
        
$user->campaign_temp json_encode($campaignUser);
        
$user->save();
        
Session::put('result'$message);
        return 
redirect('/campaign');
    }
}
Онлайн: 1
Реклама