/* Começo btnUseWeapon */ private void JogadorAtacaMonstro() { // Recebe a arma selecionada no comboBox Arma armaAtual = (Arma)cboWeapons.SelectedItem; // Determina o dano int danoAoMonstro = GeradorDeNumeroAleatorio.NumeroEntre(armaAtual.DanoMinimo, armaAtual.DanoMaximo); // Aplica o dano _monstroAtual.HitPointsAtual -= danoAoMonstro; // Mostra mensagem rtbMessages.Text += $"Você acertou {_monstroAtual.Nome} causando {danoAoMonstro.ToString()} de dano{Environment.NewLine}"; }
private void RecebeItemLoot() { // Recebe item aleatório da tabela de loot do monstro List <ItemNoInventario> lootedItems = new List <ItemNoInventario>(); // Compara se o numerado gerado automáticamente é menor igual que a porcentagem de drop foreach (ItemDeLoot itemDeLoot in _monstroAtual.tabelaDeLoot) { if (GeradorDeNumeroAleatorio.NumeroEntre(1, 100) <= itemDeLoot.PorcentagemDeDrop) { lootedItems.Add(new ItemNoInventario(itemDeLoot.Detalhes, 1)); } } // Se nenhum item for selecionado, entregar o item default. if (lootedItems.Count == 0) { foreach (ItemDeLoot itemDeLoot in _monstroAtual.tabelaDeLoot) { if (itemDeLoot.IsItemDefault) { lootedItems.Add(new ItemNoInventario(itemDeLoot.Detalhes, 1)); } } } // Adiciona o loot ao inventário do jogador foreach (ItemNoInventario itemNoInventario in lootedItems) { _jogador.AddItemAoInventario(itemNoInventario.Detalhes); if (itemNoInventario.Quantidade == 1) { rtbMessages.Text += $"Você recebeu {itemNoInventario.Quantidade.ToString()} {itemNoInventario.Detalhes.Nome}{Environment.NewLine}"; } else { rtbMessages.Text += $"Você recebeu {itemNoInventario.Quantidade.ToString()}{itemNoInventario.Detalhes.NamePlural}{Environment.NewLine}"; } } }
/* Começo btnUsePotion */ private void MonstroAtacaJogador() { // Determina quantidade de dano causado ao jogador int danoAoJogador = GeradorDeNumeroAleatorio.NumeroEntre(0, _monstroAtual.MaximumDamage); // Apresenta mensagem ao jogador rtbMessages.Text += $"{_monstroAtual.Nome} causou {danoAoJogador.ToString()} pontos de dano.{Environment.NewLine}"; // Subtrai dano da vida do jogador _jogador.HitPointsAtual -= danoAoJogador; // Atualiza UI lblHitPoints.Text = _jogador.HitPointsAtual.ToString(); // Se vida do jogador chegar a 0 if (_jogador.HitPointsAtual <= 0) { // Mostra mensagem rtbMessages.Text += $"{_monstroAtual.Nome} te matou.{Environment.NewLine}"; // Move jogador para sua casa MovePara(Mundo.LocalizacaoPorID(Mundo.LOCALIZACAO_ID_CASA)); } }