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); }
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; } }
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); } }
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); } } } }