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;
            }
        }
Exemplo n.º 2
0
    /// <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();
                }
            }
        }
    }