Ejemplo n.º 1
0
        public bool OptionsMatch(KettleSubOption option1, KettleSubOption option2)
        {
            if ((option1 == null) != (option2 == null))
            {
                return(false);
            }

            if (option1 != null)
            {
                if (option1.Id != option2.Id)
                {
                    return(false);
                }

                if ((option1.Targets == null || option1.Targets.Count == 0) != (option2.Targets == null || option2.Targets.Count == 0))
                {
                    return(false);
                }

                if (option1.Targets != null)
                {
                    foreach (int target in option1.Targets)
                    {
                        if (!option2.Targets.Contains(target))
                        {
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void OnOptionsBlock(KettleOptionsBlock optionsBlock)
        {
            Console.WriteLine("AI OnOptionsBlock called.");

            int          kettleOptionIndex = Rand.Next(0, optionsBlock.Options.Count);
            KettleOption kettleOption      = optionsBlock.Options[kettleOptionIndex];

            var kettleSendOption = new KettleSendOption()
            {
                Id = optionsBlock.Id,
            };

            if (kettleOption.MainOption != null)
            {
                kettleSendOption.MainOption = kettleOptionIndex;
            }

            if (kettleOption.SubOptions != null && kettleOption.SubOptions.Any())
            {
                int             kettleSubOptionIndex = Rand.Next(0, kettleOption.SubOptions.Count);
                KettleSubOption subOption            = kettleOption.SubOptions[kettleSubOptionIndex];
                kettleSendOption.SubOption = kettleSubOptionIndex;

                if (subOption.Targets != null && subOption.Targets.Any())
                {
                    kettleSendOption.Target = subOption.Targets[Rand.Next(0, subOption.Targets.Count)];
                }
            }
            else
            {
                if (kettleOption.MainOption != null && kettleOption.MainOption.Targets != null && kettleOption.MainOption.Targets.Any())
                {
                    kettleSendOption.Target = kettleOption.MainOption.Targets[Rand.Next(0, kettleOption.MainOption.Targets.Count)];
                }
            }

            kettleSendOption.Position = 0;

            Adapter.SendMessage(kettleSendOption);
        }