Example #1
0
 function usehealAction()
 {
     $this->user = Zend_Auth::getInstance()->getIdentity();
     $id_user = $this->user->id_utilisateur;
     $id = (int) $this->_request->getParam('id', 0);
     if (avatarViolation($id, $id_user) || $id < 1) {
         $this->_redirect('avatar/avatar');
         return;
     }
     $idsoin = (int) $this->_request->getParam('soin', 0);
     $avatar = new Avatar();
     $avatar = $avatar->findById($id);
     $invent = new LigneInventaire();
     $invent = $invent->findItem($avatar->id_avatar, $idsoin);
     if (!$invent) {
         $this->_redirect('avatar/avatar');
         return;
     }
     $qte = $invent->quantite_ligne;
     //gérer le soin
     $soin = new ObjetSoin();
     if (!($soin = $soin->findById($invent->id_objet))) {
         $this->_redirect('avatar/avatar');
         return;
     }
     $current_hp = $avatar->hp_avatar + $soin->hp_soin;
     if ($current_hp > $avatar->hpmax_avatar) {
         $current_hp = $avatar->hpmax_avatar;
     }
     $current_mp = $avatar->mp_avatar + $soin->mp_soin;
     if ($current_mp > $avatar->mpmax_avatar) {
         $current_mp = $avatar->mpmax_avatar;
     }
     $adata = array('hp_avatar' => $current_hp, 'mp_avatar' => $current_mp);
     $where = 'id_avatar = ' . $id;
     $avatar = new Avatar();
     $avatar->update($adata, $where);
     if ($qte > 1) {
         $data = array('quantite_ligne' => $qte - 1);
         $where = 'id_objet = ' . $invent->id_objet . ' AND id_avatar = ' . $id;
         $invent = new LigneInventaire();
         $invent->update($data, $where);
     } else {
         $where = 'id_objet = ' . $invent->id_objet . ' AND id_avatar = ' . $id;
         $invent = new LigneInventaire();
         $row_affected = $invent->delete($where);
     }
     $this->_redirect('jeu/inventaire/id/' . $id);
 }