public BullseyeDesc(Dictionary <string, object> bullseyeData) { if (bullseyeData.ContainsKey("Size")) { Size = GetSize((string)bullseyeData["Size"]); } else { Size = SizeOfBullseye.L; } if (bullseyeData.ContainsKey("Height")) { Height = GetHeight((string)bullseyeData["Height"]); } else { Height = GetRandomHeight(); } if (bullseyeData.ContainsKey("StaticPosition")) { HasStaticPosition = (bool)bullseyeData["StaticPosition"]; } else { HasStaticPosition = true; } if (bullseyeData.ContainsKey("Position")) { bullseyePosition = GetBullseyePosition((string)bullseyeData["Position"]); } else { bullseyePosition = GetRandomBullseyePosition(); } if (bullseyeData.ContainsKey("StaticSize")) { HasStaticSize = (bool)bullseyeData["StaticSize"]; if (!HasStaticSize) { Size = SizeOfBullseye.L; } } else { HasStaticSize = true; } if (bullseyeData.ContainsKey("YellowZone")) { HasYellowZone = true; yellowZoneDesc = new YellowZoneDesc((string)bullseyeData["YellowZone"]); } else { HasYellowZone = false; } }
/// <summary> /// Comprueba como se deben pintar las dianas /// </summary> /// <param name="_hayPortero">Indica si hay portero para este tiro</param> /// <returns></returns> private void SetBullEyes(bool _hayPortero) { if (currentBullseye != null) { GameObject.Destroy(currentBullseye); } // SI ES TIRADOR if (GameplayService.initialGameMode == GameMode.Shooter) { // si no hay portero if (!_hayPortero) { // si no es una fase en la que hay portero pero no debe haber dianas expresamente if (!(GameplayService.modoJuego.tipoModo == ModoJuego.TipoModo.EXPERTO && fase == 0)) { SizeOfBullseye[] sizes = { }; HeightOfBullseye[] heights = { }; ZoneOfBullseye zone = ZoneOfBullseye.Centro; Vector3 velocidadInicial = Vector3.zero; // usar esta variable para asegurar que a partir de la fase 9 las fases se ciclan int auxFase = fase; if (auxFase > 10) { if (fase % 2 == 1) { // si la fase es impar => como la 9 auxFase = 9; } else { // si la fase es par => como la 10 auxFase = 10; } } // definir la posicion inicial de las dianas switch (auxFase) { case 0: sizes = new SizeOfBullseye[] { SizeOfBullseye.L, SizeOfBullseye.M }; heights = new HeightOfBullseye[] { HeightOfBullseye.Baja }; zone = ZoneOfBullseye.Centro; break; case 1: sizes = new SizeOfBullseye[] { SizeOfBullseye.L }; heights = new HeightOfBullseye[] { HeightOfBullseye.Baja }; zone = ZoneOfBullseye.Centro; break; case 2: sizes = new SizeOfBullseye[] { SizeOfBullseye.L, SizeOfBullseye.M }; heights = new HeightOfBullseye[] { HeightOfBullseye.Baja }; zone = ZoneOfBullseye.Centro; break; case 3: sizes = new SizeOfBullseye[] { SizeOfBullseye.L }; heights = new HeightOfBullseye[] { HeightOfBullseye.Baja }; zone = ZoneOfBullseye.Centro; break; case 4: sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Centro; break; case 5: sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Centro; break; case 6: sizes = new SizeOfBullseye[] { SizeOfBullseye.M }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Centro; break; case 7: sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Lados; break; case 8: sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Lados; break; case 9: // NOTA: a partir de la fase 9, las fases impares se ejecutan de esta manera sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Lados; break; case 10: // NOTA: a partir de la fase 10, las fases pares se ejecutan de esta manera sizes = new SizeOfBullseye[] { SizeOfBullseye.S }; heights = new HeightOfBullseye[] { HeightOfBullseye.Media, HeightOfBullseye.Alta }; zone = ZoneOfBullseye.Lados; break; } // asignar velocidad a las dianas // NOTA: si las dianas se mueven => hacer que su tamaño sea grande if (GameplayService.modoJuego.tipoModo == ModoJuego.TipoModo.LEYENDA && (auxFase == 0 || auxFase == 1 || auxFase == 3 || auxFase == 4 || auxFase == 6 || auxFase == 7 || auxFase == 9)) { velocidadInicial = new Vector3(0.3f, 0.3f, 0.0f); sizes = new SizeOfBullseye[] { SizeOfBullseye.L }; } BullseyeManager.Instance.defSize = sizes; BullseyeManager.Instance.defHeight = heights; BullseyeManager.Instance.defZone = zone; BullseyeManager.Instance.defInitialSpeed = velocidadInicial; // crear la diana currentBullseye = BullseyeManager.Instance.CreateBullseye(); } } } }