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;
 }
示例#2
0
 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;
 }
示例#3
0
}
//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" />