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