Пример #1
0
        /* 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}";
        }
Пример #2
0
        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}";
                }
            }
        }
Пример #3
0
        /* 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));
            }
        }