Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
                $pdf->SetXY(185, $y);
                $pdf->WriteRight(10, 0, number_format($item->getPeso(), 2, ',', '.'));
                $arma_nome = '';
            }
            $y += 4;
        }
    }
}
$y = 56;
foreach ($longe as $item) {
    $pdf->SetXY(12.5, $y);
    $pdf->Write(0, $item->getNome());
    $pdf->SetXY(48, $y);
    $danoBasico = $personagem->pegarDanoBasico($item->getDano());
    $danoBasico['bonus'] += $item->getBonus();
    $dano = Dado::descreverDano($danoBasico['dados'], $danoBasico['bonus']);
    $dano .= " " . $item->getTipo();
    $pdf->Write(0, $dano);
    $pdf->SetXY(70.5, $y);
    $pdf->Write(0, $item->getPrec());
    $pdf->SetXY(78.5, $y);
    if ($item instanceof ArmaMuscular) {
        $alcance = $personagem->getST() * $item->getAlcanceMeio();
        $alcance .= "/" . $personagem->getST() * $item->getAlcanceMax();
    }
    $pdf->WriteCenter(13, 0, $alcance);
    $pdf->SetXY(96, $y);
    $pdf->Write(0, $item->getCdt());
    $pdf->SetXY(105, $y);
    $pdf->Write(0, $item->getTiro());
    $pdf->SetXY(111.2, $y);