public double ReduzirDano(double armadura, double dano, double danoExtra = 0) { double danoSorteado = Sortear.Valor((dano / 2), dano + danoExtra); double reducao = (armadura * danoSorteado) / (armadura + 10 * danoSorteado); danoSorteado -= reducao; if (danoSorteado < 0) { return(0); } return(danoSorteado); }
public async Task ComandoExplorarAb(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); var vidaSorteada = Sortear.Valor(3, 4); var danoSoorteado = Sortear.Valor(7, 10); var personGenerator = new PersonNameGenerator(); RPGMob mob = new RPGMob((jogador.AtaqueFisicoBase + jogador.AtaqueFisicoExtra) * vidaSorteada) { Nome = personGenerator.GenerateRandomFirstName(), AtaqueFisico = jogador.VidaMaxima / danoSoorteado, }; jogador.Batalha = new RPGBatalha(mob); jogador.Salvar(); await ctx.RespondAsync($"{ctx.User.Mention} vocĂȘ explorou! Encontrou: < {mob.Nome.Underline()} >!".Bold()); }
private double SortearMetadeValor(double valor) => Sortear.Valor(valor / 2, valor);