<?php

class PetsController extends Controller {

    public function accessRules() {
        return array(
            array('allow',
                'actions' => array('index', 'shop', 'info', 'buy', 'panel', 'changename'),
                'users' => array('@'),
            ),
            array('deny',
                'users' => array('*'),
                'deniedCallback' => array(Yii::app()->controller, 'redirectToHome'),
            )
        );
    }

    public function actions() {
        return array(
            'page' => array(
                'class' => 'CViewAction',
            ),
        );
    }

    public function actionShop() {
        $user = Users::findUser();
        if ($user->level >= 5) {
            $models = Pets::model()->findAll();
            $this->render('shop', array(
                'models' => $models,
            ));
        } else {
            throw new CHttpException(NULL, 'Эта возможность доступна игрокам с 5 уровня');
        }
    }

    public function actionShopfood() {
        $user = Users::findUser();
        if ($user->level >= 5) {
            $models = Clothes::model()->findAllByAttributes(array('type' => 11));
            $this->render('shopfood', array(
                'models' => $models,
            ));
        } else {
            throw new CHttpException(NULL, 'Эта возможность доступна игрокам с 5 уровня');
        }
    }

    public function actionPanelfood() {
            $models = Inventory::model()->findAllByAttributes(array('type' => 11));
            $this->render('panelfood', array(
                'models' => $models,
            ));
    }

    public function actionInfo($id) {
        $user = Users::findUser();
        if ($user->level >= 5) {
            $model = Pets::findPet($id);
            $this->render('info', array(
                'model' => $model,
            ));
        } else {
            throw new CHttpException(NULL, 'Эта возможность доступна игрокам с 5 уровня');
        }
    }

    public function actionBuyfood($id) {
        $user = Users::findUser();
        $c = Clothes::findClothes($id);
        if ($user->money >= $c->money) {
            $inventory = new Inventory;
            $inventory->item = $id;
            $inventory->user = Yii::app()->user->id;
            $inventory->title = $c->title;
            $inventory->type = $c->type;
            $inventory->save(FALSE);
            Yii::app()->user->setFlash('success', 'Вы успешно купили ' . $c->title);
            $this->redirect(array('pets/shopfood'));
        } else {
            Yii::app()->user->setFlash('error', 'Не хватает денег на покупку');
            $this->redirect(array('pets/foodshop'));
        }
    }

    public function actionBuy($id) {
        $user = Users::model()->findByPk(Yii::app()->user->id);
        if ($user->level >= 5) {
            $model = Pets::findPet($id);
            if (Pets_user::ownedmeornot($id) == FALSE) {
                if ($user->money >= $model->money AND $user->donate >= $model->donate) {
                    $user->saveCounters(array('money' => -$model->money, 'donate' => -$model->donate));
                    $pet = new Pets_user;
                    $pet->user = Yii::app()->user->id;
                    $pet->title = $model->title;
                    $pet->pet = $model->id;
                    $pet->procent = $model->procent;
                    $pet->save(FALSE);
                    Yii::app()->user->setFlash('success', 'Вы успешно купили <b>' . $model->title . '</b>');
                } else {
                    Yii::app()->user->setFlash('error', 'Не хватает средств на покупку питомца');
                }
            } else {
                Yii::app()->user->setFlash('error', 'У вас уже есть питомец');
            }
            $this->redirect(array('pets/shop'));
        } else {
            throw new CHttpException(NULL, 'Эта возможность доступна игрокам с 5 уровня');
        }
    }

    public function actionPanel() {
        $p = Pets_user::ownedmeornot(NULL);
        if ($p) {
            if ($_GET['away'] == 1) {
                Yii::app()->user->setFlash('error', 'Вы уверены что хотите избавиться от питомца?<br />' . CHtml::link('Уверен<br />', array('pets/panel', 'away' => 2)));
                $this->redirect(array('pets/panel'));
            }
            if ($_GET['away'] == 2) {
                Pets_user::model()->deleteAllByAttributes(array('user' => Yii::app()->user->id));
                Yii::app()->user->setFlash('success', 'Питомца больше не существует');
                $this->redirect(array('main/index'));
            }
        } else {
            $this->redirect(array('pets/shop'));
        }
        $count_food = Inventory::model()->countByAttributes(array('user' => Yii::app()->user->id, 'type' => 11));
        $this->render('panel', array(
            'p' => $p,
            'ask' => $ask,
            'count_food' => $count_food,
        ));
    }

    public function actionProcentup() {
        $p = Pets_user::ownedmeornot(NULL);
        if ($p) {
            $user = Users::model()->findByPk(Yii::app()->user->id);
            if ($user->donate >= 5) {
                if ($p->procent < 50) {
                    $user->saveCounters(array('donate' => -5));
                    $p->saveCounters(array('procent' => 1));
                    Yii::app()->user->setFlash('success', 'Сила питомца растет');
                } else {
                    Yii::app()->user->setFlash('error', 'Питомец достиг максимального урона!');
                }
            } else {
                Yii::app()->user->setFlash('error', 'Не хватает денег!');
            }
        }
        $this->redirect(array('pets/panel'));
    }

    public function actionChangename() {
        $p = Pets_user::ownedmeornot(NULL);
        if ($p) {
            $user = Users::model()->findByPk(Yii::app()->user->id);
            $model = Pets_user::model()->findByPk($p->id);
            if (isset($_POST['Pets_user'])) {
                $model->title = $_POST['Pets_user']['title'];
                if ($model->validate()) {
                    Pets_user::model()->updateByPk($p->id, array('title' => $_POST['Pets_user']['title']));
                    Yii::app()->user->setFlash('success', 'Вы успешно сменили имя питомцу!');
                    $user->saveCounters(array('donate' => -1));
                    $this->redirect(array('pets/panel'));
                }
            }
            $this->render('changename', array(
                'model' => $model,
            ));
        } else {
            $this->redirect(array('pets/panel'));
        }
    }

}
