private int index = 0; // Index #endregion #region Estados /// <summary> /// <para>Cuando se entra en el estado</para> /// </summary> public override void Enter() // Cuando se entra en el estado { base.Enter(); areaHabilidad = Turno.habilidad.GetComponent <AreaHabilidad>(); areas = areaHabilidad.GetAreasEnArea(Grid, Pos); Grid.SeleccionarAreas(areas); BuscarObjetivos(); ActualizarPanelInfoUnidad(Turno.unidad.Area.pos); if (Turno.objetivos.Count > 0) { if (control.Actual == Controladores.Humano) { PanelIndicadorAcierto.Mostrar(); } SetObjetivo(0); } if (control.Actual == Controladores.Maquina) { StartCoroutine(IAConfirmarObjetivo()); } }
/// <summary> /// <para>Analiza la localizacion del ataque</para> /// </summary> /// <param name="plan"></param> /// <param name="opcionAtq"></param> private void AnalizarLocalizacionAtaque(PlanDeAtaque plan, OpcionAtaque opcionAtq) // Analiza la localizacion del ataque { // Obtener datos AreaHabilidad area = plan.habilidad.GetComponent <AreaHabilidad>(); List <Area> areas = area.GetAreasEnArea(freya.grid, opcionAtq.objetivo.pos); // Obtener objetivos y habilidades opcionAtq.areaObjetivos = areas; opcionAtq.isAreaPeligrosa = IsHabilidadRealizable(plan, Unidad.Area); // Analizar areas for (int n = 0; n < areas.Count; n++) { Area areaAnali = areas[n]; if (Unidad.Area == areas[n] || !plan.habilidad.IsTarget(areaAnali)) { continue; } // Comprobar si es realizable la habilidad y fijarla bool isRealizable = IsHabilidadRealizable(plan, areaAnali); opcionAtq.AddMarca(areaAnali, isRealizable); } }