Пример #1
0
        public static void Add(Interface.Struct.ControlMarker marker)
        {
            ControlMarker nmarker = new ControlMarker(marker);

            Out.Log(Significance.Low, "Added control marker " + nmarker);
            AllControlMarkers.Add(nmarker);
        }
Пример #2
0
    public bool SetNotAlcholControl(int id, LiquidType liquid, SolidType solid)
    {
        ControlMarker ctrl = GetNotAlcholControl(id);

        if (ctrl != null)
        {
            ctrl.Liquid = liquid;
            ctrl.Solid  = solid;
            ctrl.ControlUpdated();

            ControlInfo info = null;

            switch (id)
            {
            case 0: info = Tap_Up;    break;

            case 1: info = Tap_Right; break;

            case 2: info = Tap_Down;  break;

            case 3: info = Tap_Left;  break;
            }

            if (info != null)
            {
                info.Liquid = liquid;
                info.Solid  = solid;
            }


            return(true);
        }

        return(false);
    }
Пример #3
0
 public bool AddNotAlcholControl(LiquidType liquid, SolidType solid)
 {
     for (int i = 0; i < 3; i++)
     {
         ControlMarker ctrl = GetNotAlcholControl(i);
         if (ctrl.Liquid == LiquidType.None && ctrl.Solid == SolidType.None)
         {
             SetNotAlcholControl(i, liquid, solid);
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
    public ControlMarker GetAlcholControl(int id)
    {
        ControlMarker ctrl = null;

        switch (id)
        {
        case 0: ctrl = Control_Action2; break;

        case 1: ctrl = Control_Action3; break;

        case 2: ctrl = Control_Action4; break;
        }

        return(ctrl);
    }
Пример #5
0
    public ControlMarker GetNotAlcholControl(int id)
    {
        ControlMarker ctrl = null;

        switch (id)
        {
        case 0: ctrl = Control_Up;    break;

        case 1: ctrl = Control_Right; break;

        case 2: ctrl = Control_Down;  break;

        case 3: ctrl = Control_Left;  break;
        }

        return(ctrl);
    }
Пример #6
0
    public bool RandomAddNotAlcholControl(LiquidType liquid, SolidType solid)
    {
        bool allUsed = true;

        for (int i = 0; i < 4; i++)
        {
            ControlMarker ctrl = GetNotAlcholControl(i);
            if (ctrl.Liquid != LiquidType.None || ctrl.Solid != SolidType.None)
            {
                allUsed = false;
                break;
            }
        }

        if (allUsed == false)
        {
            return(false);
        }

        int steps = 0;

        while (steps++ < 100)
        {
            int           r    = UnityEngine.Random.Range(0, 4);
            ControlMarker ctrl = GetNotAlcholControl(r);

            if (ctrl.Liquid != LiquidType.None || ctrl.Solid != SolidType.None)
            {
                continue;
            }

            SetNotAlcholControl(r, liquid, solid);
            return(true);
        }

        return(false);
    }
Пример #7
0
		public static void Add(Interface.Struct.ControlMarker marker)
		{
			ControlMarker nmarker = new ControlMarker(marker);
            Out.Log(Significance.Low, "Added control marker " + nmarker);
			AllControlMarkers.Add(nmarker);
		}
Пример #8
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);
        }
    }