public function acaoAtirar(ArmaMuscular $arma, $acaoSlug) { $acoes = array(); foreach (Mapa::listarPessoa() as $pessoa) { if ($pessoa->getIdGrupo() != $this->getIdGrupo()) { if ($pessoa->getCodSituacao() != ATIVO && $pessoa->getCodSituacao() != ATORDOADO) { continue; } if (!Mapa::estaVendo($this, $pessoa)) { continue; } $danoBasico = $this->pegarDanoBasico($arma->getDano()); $danoBasico['bonus'] += $arma->getBonus(); $nh = $this->getNH($arma->getPericiaSlug()); $nh -= $this->choque; $distancia = Mapa::ataqueDistancia($this, $pessoa); $nh += $distancia->visibilidade; $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 AcaoAtirar(); $acao->setAtaque($acaoSlug == AC_ATAQUE_DIREITA ? AC_ATIRAR_DIREITA : AC_ATIRAR_ESQUERDA); $acao->setAlvo($pessoa); $acao->setGolpe($arma->getTipo()); $acao->setDano($arma->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); $acao->setDistancia($distancia->distancia); $acoes[] = $acao; } } return $acoes; }
public static function pegarDoPost() { //var_dump($_POST); $item = null; $tipo_item = intval($_POST['item_tipo']); $slug = ''; $nome = ''; $peso = 0.0; $preco = 0.0; $pericia_slug = ''; if (array_key_exists('slug', $_POST)) { $slug = $_POST['slug']; } if (array_key_exists('nome', $_POST)) { $nome = $_POST['nome']; } if (array_key_exists('peso', $_POST)) { $peso = floatval($_POST['peso']); } if (array_key_exists('preco', $_POST)) { $preco = floatval($_POST['preco']); } if (array_key_exists('pericia_slug', $_POST)) { $pericia_slug = $_POST['pericia_slug']; } switch ($tipo_item) { case 1: $item = new Item($slug, $nome, $peso, $preco); break; case 2: case 3: $item = new Arma($slug, $nome, $peso, $preco, $pericia_slug); if (array_key_exists('arma_mao', $_POST)) { $item->setMao($_POST['arma_mao']); } break; case 4: $item = new ArmaMuscular($slug, $nome, $peso, $preco, $pericia_slug); break; default: throw new Exception("Tipo de Item '{$_POST['item_tipo']}' não existe."); break; } if (in_array($tipo_item, array(2, 3))) { if (count($_POST['dano']) > 0) { foreach ($_POST['dano'] as $dado) { $item->addDano(new ArmaDano($dado['tipo'], $dado['dano'], intval($dado['bonus']), floatval($dado['alcance_de']), floatval($dado['alcance_ate']), 0, intval($dado['preparacao']))); } } /* <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; ?>][dano]" value="<?php echo $dano->getDano(); ?>"> <input type="hidden" class="bonus" name="dano[<?php echo $i; ?>][bonus]" value="<?php echo $dano->getBonus(); ?>"> <input type="hidden" class="preparacao" name="dano[<?php echo $i; ?>][preparacao]" value="<?php //echo $dano->getPreparacao(); ?>"> <input type="hidden" class="alcance_de" name="dano[<?php echo $i; ?>][alcance_de]" value="<?php echo $dano->getAlcanceDe(); ?>"> <input type="hidden" class="alcance_ate" name="dano[<?php echo $i; ?>][alcance_ate]" value="<?php echo $dano->getAlcanceAte(); ?>"> */ } if ($tipo_item == 3) { $longe = new ArmaMuscular($slug, $nome, $peso, $preco, $pericia_slug); static::carregarLongeDoPost($longe); $item->setArremesso($longe); } elseif ($tipo_item == 4) { static::carregarLongeDoPost($item); } /* echo '<pre>'; var_dump($_POST, $item); echo '</pre>'; exit(); * */ return $item; }
} //var_dump($item); if ($item instanceof ArmaMuscular) { $arma = new Arma('', '', 0, 0, ''); $longe = $item; $arma->setMao($longe->getMao()); } elseif ($item instanceof Arma) { $arma = $item; if (!is_null($arma->getArremesso())) { $longe = $arma->getArremesso(); } else { $longe = new ArmaMuscular('', '', 0.0, 0.0, ''); } } else { $arma = new Arma('', '', 0, 0, ''); $longe = new ArmaMuscular('', '', 0.0, 0.0, ''); } /* if ($item instanceof ArmaMuscular) $longe = $item; else $longe = new ArmaMuscular('', '', 0.0, 0.0, '', '', '', 0, 0, 0, 0, 0, 0, 0, 0); */ require 'header.php'; ?> <script type="text/javascript" src="<?php echo WEB_PATH; ?> /js/item.js"></script> <form method="POST"> <input type="hidden" name="acao" value="gravar" />