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">