public function trabalhar($id_personagem, $id_construcao, $slug, $turno) { //var_dump($id_personagem, $id_construcao, $slug, $turno); $mensagens = array(); $regraPersonagem = new Personagem(); $personagem = $regraPersonagem->pegar($id_personagem); $construcao = $this->pegar($id_construcao); if ($construcao->id_personagem != $id_personagem) { $construdor = $regraPersonagem->pegar($construcao->id_personagem); $ouro = $construdor->ouro; //var_dump($construdor); } $nh = $personagem->pericias[$slug]->nh; $turno = $personagem->turno; $maximo = $construcao->teste[$slug]->maximo - $construcao->teste[$slug]->quantidade; $sucessos = 0; for ($i = 0; $i < 10; $i++) { if ($turno <= 0) { $mensagens[] = 'A quantidade de turnos acabou.'; break; } if ($construcao->id_personagem != $id_personagem) { $ouro -= VALOR_TRABALHO; if ($ouro < 0) { $mensagens[] = 'Seu ouro acabou.'; break; } $regraPersonagem->gastarOuro($construcao->id_personagem, VALOR_TRABALHO); $regraPersonagem->pagarOuro($id_personagem, VALOR_TRABALHO); } $sucesso = jogar($nh, 8); $mensagem = $personagem->nome . ' testeu ' . $personagem->pericias[$slug]->nome; if ($sucesso > 0) { $mensagem .= ' e obteve ' . $sucesso . ' sucesso(s).'; } elseif ($sucesso == 0) { $mensagem .= ' e não obteve nenhum sucesso.'; } elseif ($sucesso < 0) { $mensagem .= ' e obteve uma falha crítica.'; } if ($construcao->id_personagem != $id_personagem) { $mensagem .= ' Você pagou ' . VALOR_TRABALHO . ' gold pelo trabalho.'; } $sucessos += $sucesso; $regraPersonagem->gastarTurno($id_personagem, 1); $turno--; $this->adicionarPericia($id_construcao, $slug, $sucesso); if ($sucessos >= $maximo) { $mensagens[] = 'Essa parte da obra foi concluída.'; break; } $mensagens[] = $mensagem; } $this->verificar($id_construcao); return $mensagens; }
private function repartirOuro($grupo, $id_personagem, $ouro) { //if (count($grupo)) //$ouro $regraPersonagem = new Personagem(); if (count($grupo) <= 1) { $regraPersonagem->pagarOuro($id_personagem, $ouro); } elseif (count($grupo) > 1) { $ouroPrincipal = floor($ouro / 2); $ouro -= $ouroPrincipal; $ouros = array(); $ouroUnitario = floor($ouro / count($grupo)); $ouroResto = $ouro - $ouroUnitario * count($grupo); foreach ($grupo as $personagem) { if ($grupo->id_personagem == $id_personagem) { $regraPersonagem->pagarOuro($id_personagem, $ouroPrincipal); } else { if ($ouroResto > 0) { $regraPersonagem->pagarOuro($id_personagem, $ouroUnitario + 1); $ouroResto--; } else { $regraPersonagem->pagarOuro($id_personagem, $ouroUnitario); } } } } }