public void EliminarEfecto(parametrosHabilidad parametros) { Debug.LogWarning("No manches, sanación no necesita removerse"); /*int nuevaArmadura = configuracion.ObtenerArmaduraExtra(); * parametros.objetivo.armadura.RemoverModificador(nuevaArmadura);*/ }
public void EjecutaHabilidad(StatsPersonajes statsobjetivo, int indiceHabilidad) //Método que realiza los efectos de las habilidades, tomando como parametros los stats del objetivo, y el indice de la habilidad a realizar.. { var manaComponente = GetComponent <Mana>(); //Obtengo el componente mana de mi jugador, y lo almaceno en una variable para poder acceder a sus métodos. float costeMana = habilidadesEnBarra[indiceHabilidad].ObtenerCosteMana(); //Obtengo el coste de mana de la habilidad a realizar. //TO-DO necestiamos el método "AunHayEnergia" lea el argumento desde las propiedades de la habilidad. TO-DO. if (manaComponente.AunHayEnergia(costeMana)) //Después evaluo si hay suficiente energía para castear la habilidad con mi método que me regresa un bool "AunHayEnergia". { //manaComponente.UsarMana(costeMana); //Accedo al componente de mana, y ejecuto el método "UsarMana" que toma como argumento el mana que necesita la habilidad (costeMana). EstablecerIconoHabilidadPresionado(indiceHabilidad); var parametrosHabilidad = new parametrosHabilidad(statsobjetivo); //Creo una estructura llamado "parametrosHabilidad" que será igual a un nuevo constructo que toma los valors de "statsObjetivo". habilidadesEnBarra[indiceHabilidad].Usar(parametrosHabilidad); //Accedo al método usar de mi habilidad, que toma como parametro una estructura de variable "parametrosHabilidad". habilidadesEnBarra[indiceHabilidad].ejecutandose = true; //Establecemos que la habilidad 1 se está ejecutando. habilidadesEnBarra[indiceHabilidad].coolDownActivado = true; //Establecemos que la habilidad 1 se está ejecutando. coolDownHabilidades[indiceHabilidad] = habilidadesEnBarra[indiceHabilidad].coolDown0; //Establece el cooldown de la habilidad. duracionHabilidades[indiceHabilidad] = habilidadesEnBarra[indiceHabilidad].duracion; //La duración será igual a la duración de mi habilidad. } else { Debug.Log("No hay suficiente mana"); } }
public void Usar(parametrosHabilidad parametros) //Método que realiza la modificacion de los stats. { ManejadorMusica.instancia.Reproducir("Power Up"); //Reproduce el sonido de "Power Up". int saludAñadida = configuracion.ObtenerSaludExtra(); //Nueva armadura será igual al método "ObtenerArmadura..." de mi variable "configuración". parametros.objetivo.RecibirSanacion(saludAñadida); //Accedo a la armadura de mi objetivo a través de mi estructura de parametros, y ejecuto su método "AñadirModificador" que toma como argumento la "nuevaArmadura". float tiempoHabilidadUtilizada = Time.time; }
public void Usar(parametrosHabilidad parametros) //Método que realiza la modificacion de los stats. { ManejadorMusica.instancia.Reproducir("Power Up"); //Reproduce el sonido de "Power Up". Debug.Log("Armadura base: " + parametros.armaduraBase + ". Usada por: " + gameObject.name); int nuevaArmadura = configuracion.ObtenerArmaduraExtra(); //Nueva armadura será igual al método "ObtenerArmadura..." de mi variable "configuración". parametros.objetivo.armadura.AñadirModificador(nuevaArmadura); //Accedo a la armadura de mi objetivo a través de mi estructura de parametros, y ejecuto su método "AñadirModificador" que toma como argumento la "nuevaArmadura". float tiempoHabilidadUtilizada = Time.time; }
IEnumerator EliminaEfectoHabilidad(StatsPersonajes statsobjetivo, int indiceHabilidad) //Corutina que elimina el efecto de la habilidad, después de que su duración (en segundos) ha pasado... { float duracion = habilidadesEnBarra[indiceHabilidad].ObtenerDuracionEfecto(); var parametrosHabilidad = new parametrosHabilidad(statsobjetivo); //Obtengo los parametros de mi objetivo. //Obtengo su duración al acceder a las propiedades de su clase (En mi arreglo "habilidades"). yield return(new WaitForSeconds(duracion)); //Establezco que después de los segundos de duración... habilidadesEnBarra[indiceHabilidad].EliminarEfecto(parametrosHabilidad); //Accedo al método "EliminarEfecto" que toma los parametros del objetivo. habilidadesEnBarra[indiceHabilidad].ejecutandose = false; //Establezco que mi habilidad ya no se está ejecutando. (Debido a que su efecto se ha disipado). habilidadesEnBarra[indiceHabilidad].iconoYaEstablecido = false; //Establece que mi icono NO está establecido, porque el efecto de la habilidad ya se eliminó. Destroy(iconosDuracionHabilidad[indiceHabilidad]); //Elimina el gráfico del efecto de habilidad. }
public void EliminarEfecto(parametrosHabilidad parametros) { iComportamiento.EliminarEfecto(parametros); }
public void Usar(parametrosHabilidad parametros) //Método usar que toma como argumento un constructo del tipo "parametrosHabilidad". { iComportamiento.Usar(parametros); //Accede al método "Usar" de mi interfaz "iComportamiento", pasandole como argumento los parametros del método. //He de decir que los valores de "iComportamiento" se establecen en las clases derivadas a "Habilidad" (Como "Armadura" o "Sanación"). }
public void EliminarEfecto(parametrosHabilidad parametros) { int nuevaArmadura = configuracion.ObtenerArmaduraExtra(); parametros.objetivo.armadura.RemoverModificador(nuevaArmadura); }