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); }