public function calcularDanoBasico($mao, $tipo) { $dano = 0; $arma = $mao == MAO_DIREITA ? $this->mao_direita : $this->mao_esquerda; if (!is_null($arma)) { if ($arma instanceof ArmaDistancia) { $danoBasico = $this->pegarDanoBasico($arma->getDano()); $danoBasico['bonus'] += $arma->getBonus(); $dano = Dado::dano($danoBasico['dados'], $danoBasico['bonus']); } elseif ($arma instanceof Arma) { $golpe = $arma->getDano($tipo); //var_dump($arma, $golpe,$tipo); $danoBasico = $this->pegarDanoBasico($golpe->getDano()); $danoBasico['bonus'] += $golpe->getBonus(); $dano = Dado::dano($danoBasico['dados'], $danoBasico['bonus']); } else { throw new Exception('Arma de tipo desconhecido!'); } } else { $danoBasico = $this->pegarDanoBasico(GDP); $dano = Dado::dano($danoBasico['dados'], $danoBasico['bonus'] - 2); } return $dano; }