public function acaoDeArmaPerto(Arma $arma, $acaoSlug)
 {
     $acoes = array();
     //$nh = $this->getNH($arma->getPericiaSlug());
     foreach ($arma->listDano() as $dano) {
         if ($dano->getAlcanceAte() == 0) {
             $areas = $this->listarAreaSessaoPerto();
         } else {
             $areas = Mapa::emAlcance($this->x, $this->y, $dano->getAlcanceAte());
         }
         //var_dump($dano);
         $danoBasico = $this->pegarDanoBasico($dano->getDano());
         $danoBasico['bonus'] += $dano->getBonus();
         foreach ($areas as $area) {
             $pessoa = $area->getPersonagem();
             if (!is_null($pessoa)) {
                 if ($pessoa->getCodSituacao() != ATIVO && $pessoa->getCodSituacao() != ATORDOADO) {
                     continue;
                 }
                 if (!Mapa::estaVendo($this, $pessoa)) {
                     continue;
                 }
                 $nh = $this->getNH($arma->getPericiaSlug());
                 $nh -= $this->choque;
                 if (in_array($this->posicao, array(POSICAO_AGACHADO, POSICAO_AJOELHADO, POSICAO_SENTADO))) {
                     $nh -= 2;
                 } elseif ($this->posicao == POSICAO_DEITADO_COSTA) {
                     $nh -= 4;
                 }
                 $molinete = false;
                 $sentido = Mapa::getSentido2DAtaque($this, $pessoa);
                 if (in_array($sentido, array(SENTIDO_LATERAL_DIREITA, SENTIDO_LATERAL_ESQUERDA, SENTIDO_COSTAS))) {
                     $molinete = true;
                     $nh -= 5;
                     if ($nh > 9) {
                         $nh = 9;
                     }
                 }
                 /*
                                     $acao = new stdClass();
                                     $acao->id_alvo = $pessoa->getId();
                                     $acao->alvo = $pessoa->getNome()." [".$pessoa->getPV().'/'.$pessoa->getMaxPV()."]";
                                     $acao->tipoGolpe = $dano->getTipo();
                                     $acao->tipoDano = $dano->getDano();
                                     $acao->tipoAtaque = $acaoSlug;
                                     $acao->nh = $nh;
                                     $acao->arma = $arma->getNome();
                                     $acao->sentido = $sentido;
                                     $acao->molinete = $molinete;
                                     $acao->dano = Dado::descreverDano($danoBasico['dados'], $danoBasico['bonus']);
                 */
                 $acao = new AcaoPerto();
                 $acao->setAtaque($acaoSlug);
                 $acao->setAlvo($pessoa);
                 $acao->setGolpe($dano->getTipo());
                 $acao->setDano($dano->getDano());
                 $acao->setNH($nh);
                 $acao->setArma($arma->getNome());
                 $acao->setSentido($sentido);
                 $acao->setMolinete($molinete);
                 $acao->setDanoDescricao(Dado::descreverDano($danoBasico['dados'], $danoBasico['bonus']));
                 $acao->setMao($acaoSlug == AC_ATAQUE_DIREITA ? MAO_DIREITA : MAO_ESQUERDA);
                 //futuramente colocar redutores
                 $acoes[] = $acao;
             }
         }
     }
     if (!is_null($arma->getArremesso())) {
         $acaoSlug = $acaoSlug == AC_ATAQUE_DIREITA ? AC_ARREMESSO_DIREITA : AC_ARREMESSO_ESQUERDA;
         foreach ($this->acaoArremessar($arma->getArremesso(), $acaoSlug) as $acao) {
             $acoes[] = $acao;
         }
     }
     //var_dump($acoes);
     return $acoes;
 }