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; }
<h3>Arma de Combate de Perto</h3> <table id="danos" width="100%"> <thead> <tr> <th>Dano</th> <th class="text-center">Alcance</th> <th class="text-center">Preparação</th> <th class="text-center">-</th> </tr> </thead> <tbody> <?php $i = 1; ?> <?php foreach ($arma->listDano() as $dano) { ?> <tr id="dano<?php echo $i; ?> "> <td> <input type="hidden" class="tipo" name="dano[<?php echo $i; ?> ][tipo]" value="<?php echo $dano->getTipo(); ?> "> <input type="hidden" class="dano" name="dano[<?php echo $i;