Example #1
0
    void SetupMeasures()
    {
        for (int ingredientIi = 0; ingredientIi < ingredients.Count; ingredientIi++)
        {
            Ingredient ingredient = ingredients[ingredientIi];
            ingredient.LiquidType = LiquidType.None;
            ingredient.Won        = IngredientWin.Ignore;
            ingredient.Disable();
        }

        for (int measuresIi = 0; measuresIi < Cocktail.Measures.Count; measuresIi++)
        {
            CocktailMeasure measure    = Cocktail.Measures[measuresIi];
            Ingredient      ingredient = FindIngredientUi(measure.LiquidType);

            if (ingredient == null)
            {
                ingredient = MakeIngredientUi(measure.LiquidType);
                if (ingredient == null)
                {
                    continue;
                }
            }

            ingredient.DoSetup(measure.LiquidType, measure, Glass);
        }

        SetUpControls();
        OrderMeasures(true);
    }
Example #2
0
    public void DoSetup(LiquidType lt, CocktailMeasure measure, Glass glass)
    {
        RefreshNeeded = true;
        LiquidType    = lt;
        Text.enabled  = true;
        Image.enabled = true;
        Liquid        = null;
        Measure       = measure;
        Glass         = glass;

        if (Measure != null)
        {
            Image.sprite = TexNone;
            Won          = IngredientWin.None;
        }
        else
        {
            Image.sprite = TexIncorrect;
            Won          = IngredientWin.Wrong;
        }
    }
Example #3
0
    public void SetUpControls()
    {
        int nbLiquids = (int)LiquidType.COUNT;

        List <SolidType>  solids  = new List <SolidType>(8);
        List <LiquidType> liquids = new List <LiquidType>(nbLiquids);

        for (int i = 0; i < nbLiquids; i++)
        {
            liquids.Add((LiquidType)i);
        }

        liquids.Remove(LiquidType.None);

        SetAlcholControl(0, LiquidType.None, SolidType.None);
        SetAlcholControl(1, LiquidType.None, SolidType.None);
        SetAlcholControl(2, LiquidType.None, SolidType.None);

        SetNotAlcholControl(0, LiquidType.None, SolidType.None);
        SetNotAlcholControl(1, LiquidType.None, SolidType.None);
        SetNotAlcholControl(2, LiquidType.None, SolidType.None);
        SetNotAlcholControl(3, LiquidType.None, SolidType.None);

        for (int measuresIi = 0; measuresIi < Cocktail.Measures.Count; measuresIi++)
        {
            CocktailMeasure measure = Cocktail.Measures[measuresIi];

            SolidType  solid  = SolidType.None; // @TODO. Maybe part of measure?
            LiquidType liquid = LiquidType.None;

            liquid = measure.LiquidType;

            if (solid != SolidType.None)
            {
                solids.Add(solid);
            }

            if (liquid != LiquidType.None)
            {
                liquids.Remove(liquid);

                if (liquid == LiquidType.Beer)
                {
                    continue;
                }

                LiquidAlcohol alcohol = GlassLiquid.LiquidTypeToLiquidAlcohol(liquid);

                if (alcohol == LiquidAlcohol.Yes)
                {
                    if (RandomAddAlcholControl(liquid, solid) == false)
                    {
                        if (RandomAddNotAlcholControl(liquid, solid) == false)
                        {
                            Debug.LogError("Cannot fit in ingredients. Recipe too complicated");
                        }
                    }
                }
                else
                {
                    if (RandomAddNotAlcholControl(liquid, solid) == false)
                    {
                        if (RandomAddAlcholControl(liquid, solid) == false)
                        {
                            Debug.LogError("Cannot fit in ingredients. Recipe too complicated");
                        }
                    }
                }
            }
        }

        // Actions
        for (int i = 0; i < 3; i++)
        {
            ControlMarker ctrl = GetAlcholControl(i);
            if (!(ctrl.Liquid == LiquidType.None && ctrl.Solid == SolidType.None))
            {
                continue;
            }

            LiquidType lt = GetUniqueRandomLiquid(liquids, LiquidAlcohol.Yes);
            SetAlcholControl(i, lt, SolidType.None);
        }

        // DPad
        for (int i = 0; i < 4; i++)
        {
            ControlMarker ctrl = GetNotAlcholControl(i);
            if (!(ctrl.Liquid == LiquidType.None && ctrl.Solid == SolidType.None))
            {
                continue;
            }

            LiquidType lt = GetUniqueRandomLiquid(liquids, LiquidAlcohol.No);
            SetNotAlcholControl(i, lt, SolidType.None);
        }
    }
Example #4
0
    void ReadCocktails()
    {
        Cocktails = new List <Cocktail>(40);

        String txt = CocktailsTxt.text;

        using (StringReader reader = new StringReader(txt))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                line = line.Trim();
                if (String.IsNullOrEmpty(line))
                {
                    continue;
                }

                if (line[0] == '#')
                {
                    continue;
                }

                String[] p = line.Split(';');

                if (p.Length < 3)
                {
                    continue;
                }

                Cocktail cocktail = new Cocktail();
                Cocktails.Add(cocktail);

                cocktail.Name     = p[0];
                cocktail.Glass    = GlassLiquid.GlassStringToEnum(p[1]);
                cocktail.Measures = new List <CocktailMeasure>(3);

                int left = GlassLiquid.GetGlassSizeInMeasures(cocktail.Glass);
                ;

                float glassMeasures = left;

                for (int i = 2; i < p.Length; i++)
                {
                    string[] measureText = p[i].Split(new char[] { ' ' }, 2);

                    if (measureText.Length != 2)
                    {
                        Debug.LogErrorFormat("Bad Measure: '{0}', in {1}", p[i], line);
                        continue;
                    }

                    int measure = 0;
                    Int32.TryParse(measureText[0], out measure);

                    if (measure == 0)
                    {
                        measure = left;
                    }

                    String     ingredientName = measureText[1];
                    LiquidType liquidType     = GlassLiquid.LiquidStringToEnum(ingredientName);
                    String     humanText      = GlassLiquid.LiquidTypeAndMlToString(measure * 25, liquidType, cocktail.Glass);

                    CocktailMeasure cocktailMeasure = new CocktailMeasure();
                    cocktailMeasure.LiquidType = liquidType;
                    cocktailMeasure.Measure    = measure;
                    cocktailMeasure.Text       = humanText;
                    cocktailMeasure.Amount     = measure / glassMeasures;

                    left -= measure;

                    cocktail.Measures.Add(cocktailMeasure);
                }
            }
        }
    }