private function atualizar($personagem) { if (!is_null($personagem)) { if ($personagem->id_cidade > 0) { $regraCidade = new Cidade(); $personagem->cidade = $regraCidade->pegar($personagem->id_cidade); } $personagem->terreno = $personagem->terreno_livre + $personagem->terreno_construcao; $personagem->forca_bonus = 0; $personagem->agilidade_bonus = 0; $personagem->vitalidade_bonus = 0; $personagem->carisma_bonus = 0; $personagem->inteligencia_bonus = 0; $personagem->percepcao_bonus = 0; $racas = $this->listarRaca(); $raca = $racas[$personagem->cod_raca]; $personagem->raca = $raca['nome']; if (array_key_exists(FORCA, $raca)) { $personagem->forca_bonus += $raca[FORCA]; } if (array_key_exists(AGILIDADE, $raca)) { $personagem->agilidade_bonus += $raca[AGILIDADE]; } if (array_key_exists(VITALIDADE, $raca)) { $personagem->vitalidade_bonus += $raca[VITALIDADE]; } if (array_key_exists(CARISMA, $raca)) { $personagem->carisma_bonus += $raca[CARISMA]; } if (array_key_exists(INTELIGENCIA, $raca)) { $personagem->inteligencia_bonus += $raca[INTELIGENCIA]; } if (array_key_exists(PERCEPCAO, $raca)) { $personagem->percepcao_bonus += $raca[PERCEPCAO]; } $this->atualizarCusto($personagem); $this->atualizarPericia($personagem); $pontos = 0; $pontos += ($personagem->forca - 1) * 10; $pontos += ($personagem->agilidade - 1) * 10; $pontos += ($personagem->vitalidade - 1) * 10; $pontos += ($personagem->carisma - 1) * 10; $pontos += ($personagem->inteligencia - 1) * 10; $pontos += ($personagem->percepcao - 1) * 10; $pontos = $pontos / 6; foreach ($personagem->pericias as $slug => $pericia) { if ($pericia->bonus > 0) { $pontos += $pericia->bonus * 2; } } $personagem->level = floor($pontos / 10); $personagem->level_progressao = floor($pontos * 10 / 100); $regraItem = new Item(); $itens = $regraItem->listar($personagem->id_personagem); $personagem->equipamentos = array(); $personagem->itens = array(); $personagem->materiais = array(); $peso = 0; $pesoEquipamento = 0; foreach ($itens as $item) { if (!is_null($item->equipado)) { switch ($item->equipado) { case CORPO_PES: $item->local = _('Foots'); break; case CORPO_PERNAS: $item->local = _('Legs'); break; case CORPO_CINTURA: $item->local = _('Waist'); break; case CORPO_MAOS: $item->local = _('Hands'); break; case CORPO_BRACOS: $item->local = _('Arms'); break; case CORPO_TRONCO: $item->local = _('Body'); break; case CORPO_CABECA: $item->local = _('Head'); break; case CORPO_ESQUERDA: $item->local = _('L. Hand'); break; case CORPO_DIREITA: $item->local = _('R. Hand'); break; } if (array_key_exists(FORCA, $item->atributos)) { $personagem->forca_bonus += $item->atributos[FORCA]; } if (array_key_exists(AGILIDADE, $item->atributos)) { $personagem->agilidade_bonus += $item->atributos[AGILIDADE]; } if (array_key_exists(VITALIDADE, $item->atributos)) { $personagem->vitalidade_bonus += $item->atributos[VITALIDADE]; } if (array_key_exists(CARISMA, $item->atributos)) { $personagem->carisma_bonus += $item->atributos[CARISMA]; } if (array_key_exists(INTELIGENCIA, $item->atributos)) { $personagem->inteligencia_bonus += $item->atributos[INTELIGENCIA]; } if (array_key_exists(PERCEPCAO, $item->atributos)) { $personagem->percepcao_bonus += $item->atributos[PERCEPCAO]; } //var_dump($item); $personagem->equipamentos[] = $item; $pesoEquipamento += $item->peso; $peso += $item->peso; } else { if ($item->tipo == MATERIAL_CONSTRUCAO) { $personagem->materiais[$item->slug] = $item; } else { $personagem->itens[$item->slug] = $item; $peso += $item->peso; } } } $personagem->carga_equipamento = $pesoEquipamento; $personagem->carga_total = $peso; $personagem->forca_atual = $personagem->forca + $personagem->forca_bonus; $personagem->vitalidade_atual = $personagem->vitalidade + $personagem->vitalidade_bonus; $nivel_maximo = ($personagem->forca_atual + $personagem->vitalidade_atual) * 10; $nivel_carga3 = ($personagem->forca_atual + $personagem->vitalidade_atual) * 6; $nivel_carga2 = ($personagem->forca_atual + $personagem->vitalidade_atual) * 3; $nivel_carga1 = $personagem->forca_atual + $personagem->vitalidade_atual; if ($peso >= $nivel_maximo) { $personagem->nivel_carga = 4; } elseif ($peso >= $nivel_carga3) { $personagem->nivel_carga = 3; } elseif ($peso >= $nivel_carga2) { $personagem->nivel_carga = 2; } elseif ($peso >= $nivel_carga1) { $personagem->nivel_carga = 1; } else { $personagem->nivel_carga = 0; } $personagem->agilidade_bonus -= $personagem->nivel_carga; $personagem->forca_bonus -= $personagem->nivel_carga; $personagem->forca_atual = $personagem->forca + $personagem->forca_bonus; $personagem->agilidade_atual = $personagem->agilidade + $personagem->agilidade_bonus; $personagem->vitalidade_atual = $personagem->vitalidade + $personagem->vitalidade_bonus; $personagem->carisma_atual = $personagem->carisma + $personagem->carisma_bonus; $personagem->inteligencia_atual = $personagem->inteligencia + $personagem->inteligencia_bonus; $personagem->percepcao_atual = $personagem->percepcao + $personagem->percepcao_bonus; $personagem->carga_maxima = $nivel_maximo; } return $personagem; }
<?php require 'common.inc.php'; $regraPersonagem = new Personagem(); $regraCidade = new Cidade(); $regraConstrucao = new Construcao(); $personagem = $regraPersonagem->pegar(ID_PERSONAGEM); $GLOBALS['_personagem'] = $personagem; $id_cidade = intval($_GET['cidade']); $cidade = $regraCidade->pegar($id_cidade); $urlPersonagem = WEB_PATH . '/' . strtolower(sanitize_slug($personagem->nome)) . '_' . $personagem->id_personagem; $urlPersonagem .= '/terrain/' . strtolower(sanitize_slug($cidade->nome)) . '_' . $cidade->id_cidade; if (array_key_exists('construir', $_GET)) { $id_construcao = $regraConstrucao->construir(ID_PERSONAGEM, $id_cidade, $_GET['construir']); $construcao = $regraConstrucao->pegar($id_construcao); $urlPersonagem .= '/' . strtolower(sanitize_slug($construcao->nome)) . '_' . $construcao->id_construcao; header("Location: {$urlPersonagem}"); exit; } $tipos = $regraConstrucao->listarTipo(); require 'header.inc.php'; require 'menu-principal.inc.php'; require 'personagem-modal.inc.php'; ?> <div class="container" style="margin-top: 80px"> <div class="row"> <div class="col-md-3"> <?php require 'login.inc.php'; ?> </div>
$regraPersonagem = new Personagem(); $regraCidade = new Cidade(); $regraConstrucao = new Construcao(); $personagem = $regraPersonagem->pegar(ID_PERSONAGEM); $GLOBALS['_personagem'] = $personagem; $id_construcao = intval($_GET['construcao']); if (array_key_exists('do', $_GET)) { $id_trabalhador = ID_PERSONAGEM; if (array_key_exists('worker', $_GET)) { $id_trabalhador = intval($_GET['worker']); } $pericia_slug = $_GET['do']; $mensagens = $regraConstrucao->trabalhar($id_trabalhador, $id_construcao, $pericia_slug, 10); } $construcao = $regraConstrucao->pegar($id_construcao); $cidade = $regraCidade->pegar($construcao->id_cidade); $urlPersonagem = WEB_PATH . '/' . strtolower(sanitize_slug($personagem->nome)) . '_' . $personagem->id_personagem; $urlConstrucao = $urlPersonagem . '/construction/' . strtolower(sanitize_slug($construcao->nome)) . '_' . $construcao->id_construcao; if (array_key_exists('use', $_GET)) { $slug = $_GET['use']; $quantidade = $personagem->materiais[$slug]->quantidade; //var_dump($personagem->materiais); $regraConstrucao->usarMaterial($id_construcao, $slug, $quantidade); header("Location: {$urlConstrucao}"); exit; } require 'header.inc.php'; require 'menu-principal.inc.php'; require 'personagem-modal.inc.php'; ?> <div class="container" style="margin-top: 80px">