Exemplo n.º 1
0
        private Ataque ObtenerAtaque(TipoElemento tipodeAtaque)
        {
            Ataque objAtaque = null;

            for (int iPos = 0; iPos < this.Ataques.Count; iPos++)
            {
                if (this.Ataques[iPos].Tipo == tipodeAtaque)
                {
                    objAtaque = this.Ataques[iPos];
                    break;
                }
            }
            return(objAtaque);
        }
Exemplo n.º 2
0
        public Ataque AtacarJugador(out int damage)
        {
            Array        values    = Enum.GetValues(typeof(TipoElemento));
            Random       rnd       = new Random();
            int          rndPos    = rnd.Next(0, values.Length);
            TipoElemento elemento  = (TipoElemento)values.GetValue(rndPos);
            Ataque       objAtaque = ObtenerAtaque(elemento);

            damage = CalcularDmg(objAtaque);
            this.Player.PlayerStats.HealthPoints -= damage;
            if (this.Player.PlayerStats.HealthPoints <= 0)
            {
                this.Player.PlayerStats.HealthPoints = 0;
                this.CurrentGameplayStatus           = GameSessionStatus.GameOver;
            }
            return(objAtaque);
        }
Exemplo n.º 3
0
        private void CrearAtaques()
        {
            Ataque objRayo = new Ataque(TipoElemento.Rayo,
                                        new TipoElemento[] { TipoElemento.Agua },
                                        new TipoElemento[] { TipoElemento.Tierra },
                                        5, 2);

            Ataque objFuego = new Ataque(TipoElemento.Fuego,
                                         new TipoElemento[] { TipoElemento.Hielo },
                                         new TipoElemento[] { TipoElemento.Viento },
                                         10, 5);

            Ataque objTierra = new Ataque(TipoElemento.Tierra,
                                          new TipoElemento[] { TipoElemento.Rayo },
                                          new TipoElemento[] { TipoElemento.Agua },
                                          7, 5);

            Ataque objHielo = new Ataque(TipoElemento.Hielo,
                                         new TipoElemento[] { TipoElemento.Viento },
                                         new TipoElemento[] { TipoElemento.Fuego },
                                         8, 4);

            Ataque objAgua = new Ataque(TipoElemento.Agua,
                                        new TipoElemento[] { TipoElemento.Tierra },
                                        new TipoElemento[] { TipoElemento.Rayo },
                                        8, 4);

            Ataque objViento = new Ataque(TipoElemento.Viento,
                                          new TipoElemento[] { TipoElemento.Fuego },
                                          new TipoElemento[] { TipoElemento.Viento },
                                          8, 4);

            Ataques.Add(objRayo);
            Ataques.Add(objFuego);
            Ataques.Add(objTierra);
            Ataques.Add(objHielo);
            Ataques.Add(objAgua);
            Ataques.Add(objViento);
        }
Exemplo n.º 4
0
        private int CalcularDmg(Ataque objAtaque)
        {
            int damage = objAtaque.BaseDamage;

            foreach (TipoElemento fuerteContra in objAtaque.FuerteContra)
            {
                if (fuerteContra == TargetActual.Elemento)
                {
                    //el ataque seleccionado es furte contra el elemento del enemigo
                    damage += objAtaque.DamageModifier;
                }
            }
            foreach (TipoElemento debilContra in objAtaque.DebilContra)
            {
                if (debilContra == TargetActual.Elemento)
                {
                    damage -= objAtaque.DamageModifier;
                }
            }

            return(damage);
        }
Exemplo n.º 5
0
        public Ataque AtacarEnemigo(TipoElemento tipoDeElemento, out int damage, out bool nuevoEnemigo)
        {
            nuevoEnemigo = false;
            Ataque objAtaque = ObtenerAtaque(tipodeAtaque: tipoDeElemento);

            damage = CalcularDmg(objAtaque);
            this.TargetActual.EnemyStats.HealthPoints -= damage;
            if (this.TargetActual.EnemyStats.HealthPoints <= 0)
            {
                this.TargetActual.EnemyStats.HealthPoints = 0;
                this.Enemies.Remove(this.TargetActual);
                if (this.Enemies.Count > 0)
                {
                    SetRandomTarget();
                    nuevoEnemigo = true;
                    this.Player.PlayerStats.HealthPoints = this.InitialPlayerHealthpoints;
                }
                else
                {
                    this.CurrentGameplayStatus = GameSessionStatus.PlayerWin;
                }
            }
            return(objAtaque);
        }