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); }
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); }
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); }
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); }
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); }