예제 #1
0
        public void SomeResult(ParseMessage pm, DND cube)
        {
            //extremly bad practice should think about it
            if (cube is D4)
            {
                cube.SetCubeResult();
            }
            else if (cube is D8)
            {
                cube.SetCubeResult();
            }
            else if (cube is D10)
            {
                cube.SetCubeResult();
            }
            else if (cube is D12)
            {
                cube.SetCubeResult();
            }
            else if (cube is D20)
            {
                cube.SetCubeResult();
            }
            else if (cube is D100)
            {
                cube.SetCubeResult();
            }
            //TODO think about the message huh?
            if (pm.HasArgument && !pm.HasMessage)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Кидаю d" + $"{cube.CubeType}" + " " + $"{pm.Argument} раз");
                TextMessage = sb.ToString();
            }

            if (pm.HasMessage && !pm.HasArgument)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Кидаю d" + $"{cube.CubeType}" + " " + $"с надеждой, что {pm.MessageText}");
                TextMessage = sb.ToString();
            }

            if (!pm.HasMessage && !pm.HasArgument)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Кидаю d" + $"{cube.CubeType}");
                TextMessage = sb.ToString();
            }

            if (pm.HasMessage && pm.HasArgument)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Кидаю d" + $"{cube.CubeType}" + " " + $"{pm.Argument} раз " + $"c надеждой что {pm.MessageText}");
                TextMessage = sb.ToString();
            }
        }
예제 #2
0
        public void FinalResult(ParseMessage pm, DND cube)
        {
            StringBuilder sb = new StringBuilder();

            if (cube is D20)
            {
                d20Result(pm, cube);
            }
            else
            {
                dResult(pm, cube);
            }
            pm.CommandExecuted = true;
        }
예제 #3
0
        public static List <int> GetValues(DND dnd, int count)
        {
            if (count >= 1)
            {
                var valList = new List <int>(count - 1);
                for (int i = 0; i < count; i++)
                {
                    dnd.SetCubeResult();
                    valList.Add(dnd.CubeResult);
                }

                return(valList);
            }

            throw new Exception();
        }
예제 #4
0
        private void dResult(ParseMessage pm, DND cube)
        {
            StringBuilder sb = new StringBuilder();

            if (pm.HasArgument && pm.HasMessage)
            {
                var listValues = DndCaluclation.GetValues(cube, pm.Argument);
                sb.Append($"{pm.MessageText}" + " с такими результатами:\n");
                foreach (var value in listValues)
                {
                    sb.Append(value + " ");
                }
                TextMessage = sb.ToString();
            }
            else if (!pm.HasArgument && pm.HasMessage || !pm.HasMessage)
            {
                sb.Append($"Куб показывает {cube.CubeResult}");
                TextMessage = sb.ToString();;
            }
        }
예제 #5
0
        private void d20Result(ParseMessage pm, DND cube)
        {
            StringBuilder sb = new StringBuilder();

            if (pm.HasMessage && pm.HasArgument)
            {
                var listValues = DndCaluclation.GetValues(cube, pm.Argument);
                sb.Append($"{pm.MessageText}" + " с такими результатами:\n");
                foreach (var value in listValues)
                {
                    sb.Append(value + " ");
                }
                TextMessage = sb.ToString();
            }
            else if (!pm.HasMessage && pm.HasArgument)
            {
                var listValues = DndCaluclation.GetValues(cube, pm.Argument);
                sb.Append(" с такими результатами:\n");
                foreach (var value in listValues)
                {
                    sb.Append(value + " ");
                }

                TextMessage = sb.ToString();
            }

            else if (pm.HasMessage && !pm.HasArgument)
            {
                switch (cube.CubeResult)
                {
                case int n when(n == 20):
                    sb.Append($"Критический разрыв ебала на {cube.CubeResult}" + "," + $" вы точно: {pm.MessageText} ");

                    TextMessage = sb.ToString();
                    break;

                case int n when(n == 1):
                    sb.Append($"Вы обосрались конкретно тупа на {cube.CubeResult}" + "," + " пошёл нахуй!'");

                    TextMessage = sb.ToString();
                    break;

                case int n when(n < 7):
                    sb.Append($"Вы не смогли {pm.MessageText}," + $" куб показывает {cube.CubeResult}");

                    TextMessage = sb.ToString();
                    break;

                case int n when(n >= 7 && n < 11):
                    sb.Append($"Не могу точно сказать смогли ли вы {pm.MessageText}," + $" куб показывает {cube.CubeResult}, кинь ещё раз");

                    TextMessage = sb.ToString();
                    break;

                case int n when(n >= 11 && n <= 19):
                    sb.Append($"Вы смогли {pm.MessageText}," + $" куб показывает: {cube.CubeResult}");

                    TextMessage = sb.ToString();
                    break;
                }
            }
            else if (!pm.HasMessage && !pm.HasArgument)
            {
                sb.Append($"Куб показывает {cube.CubeResult}");
                TextMessage = sb.ToString();
            }
        }