<?php require 'common.php'; if (count($_POST) > 0 && $_POST['acao'] == 'falar') { $id_personagem = intval($_POST['id_personagem']); $texto = $_POST['texto_log']; if (substr($texto, 0, 1) == '/') { $texto = Dado::jogadaTexto($texto); } Sessao::escreverlog($texto, $id_personagem, LOG_CHAT); header('Location: sessao.php?s=' . Sessao::idSessao() . '&id=' . $id_personagem); exit; } $sessao = Sessao::getSessaoAtual(); if ($sessao->getTipo() == SESSAO_GRUPO && $sessao->getTempoTurno() > 0 && $sessao->getTempoSessao() <= 0) { $sessao->finalizarTurno(); $sessao->atualizar(); header('Location: sessao.php?s=' . Sessao::idSessao() . '&id=' . Sessao::idPersonagemAtual()); exit; } $sessao->atualizar(); /* $mapaFull = Mapa::gerarHex(); if (!is_null($sessao->personagemAtual())) { $pessoa = $sessao->personagemAtual(); $mapaFull = Mapa::mapaZoom($mapaFull, $pessoa->getX(), $pessoa->getY(), 960, 350, $pessoa->getSentido(), 2); } $imagem64 = Mapa::convertToBase64($mapaFull); imagedestroy($mapaFull); */ $personagem = null;
public function projetar($golpe, $dano) { $projecao = floor($dano / ($this->getST() - 2)); if ($projecao <= 0) { return false; } $inimigo = $golpe->getChar(); $sentido = Mapa::getSentido2DAtaque($golpe->getChar(), $this); $sentido = Mapa::inverterSentido2D($sentido); //echo $sentido; //exit(); for ($i = 1; $i <= $projecao; $i++) { switch ($sentido) { case 0: $retorno = $this->moverTopo(); break; case 1: $retorno = $this->moverTopoDireito(); break; case 2: $retorno = $this->moverRodapeDireito(); break; case 3: $retorno = $this->moverRodape(); break; case 4: $retorno = $this->moveRodapeEsquerdo(); break; case 5: $retorno = $this->moverTopoEsquerdo(); break; } if ($retorno === false) { break; } } $mensagem = "O ataque de " . $inimigo->getNome() . " projetou " . $this->getNome() . " {$projecao} metro(s)."; $jogada = Dado::testeHabilidade($this->getDX(), $projecao - 1); if (in_array($jogada->resultado, array(FALHA, FALHA_CRITICA))) { $this->setPosicao(POSICAO_DEITADO_COSTA); $mensagem .= " " . $this->getNome() . " falhou no teste (" . $jogada->jogada . ") e caiu!"; $tipo_log = LOG_ATAQUE; } else { $mensagem .= " " . $this->getNome() . " foi bem sucedido no teste (" . $jogada->jogada . ") e evitou a queda!"; $tipo_log = LOG_FALHA; } Sessao::escreverlog($mensagem, $inimigo->getIdOriginal(), $tipo_log); }