/// <summary>
        /// Main method - template for the FileController evaluation
        /// </summary>
        /// <param name="traits">Character Traits</param>
        /// <param name="memory">Character's Memory and knowledge</param>
        /// <param name="perceivedEvent">Event to evaluate</param>
        /// <returns>Character's reaction</returns>
        public List <Reaction> Evaluate(CharacterTraits traits, Memory.Memory memory, PerceivedEvent perceivedEvent)
        {
            List <Reaction> reactions;

            if (EvaluateNode(perceivedEvent, memory, traits))
            {
                if (RightNode == null)
                {
                    throw new NullNodeException($"Right node for node {this} is missing.");
                }

                reactions = RightNode.Evaluate(traits, memory, perceivedEvent);

                if (RightNode.GetNodeType() == "Node")
                {
                    DataToMemorize.AddRange(((AbstractDecisionNode)RightNode).DataToMemorize);
                }
            }
            else
            {
                if (LeftNode == null)
                {
                    throw new NullNodeException($"Left node for node {this} is missing.");
                }

                reactions = LeftNode.Evaluate(traits, memory, perceivedEvent);

                if (LeftNode.GetNodeType() == "Node")
                {
                    DataToMemorize.AddRange(((AbstractDecisionNode)LeftNode).DataToMemorize);
                }
            }

            return(reactions);
        }
Esempio n. 2
0
 public WaypointWriter()
 {
     InitializeComponent();
     wow     = new Memory.Memory();
     PCoord  = new List <MainForm.Coords>();
     WPRange = 100;
     LoadWaypoints("");
     LoadedLocation = "";
     SelectedLoc    = -1;
 }
Esempio n. 3
0
 public WaypointWriter()
 {
     InitializeComponent();
     wow = new Memory.Memory();
     PCoord = new List<MainForm.Coords>();
     WPRange = 100;
     LoadWaypoints("");
     LoadedLocation = "";
     SelectedLoc = -1;
 }
Esempio n. 4
0
        public void ReadWriteByteSuccess()
        {
            Byte   expectedByte = 0x55;
            UInt16 address      = 0x400;

            IMemory memory = new Memory.Memory();

            memory.WriteByte(address, expectedByte);

            Byte actualByte = memory.ReadByte(address);

            Assert.AreEqual(expectedByte, actualByte, $"Expected {expectedByte} found {actualByte}");
        }
Esempio n. 5
0
 public static bool IsSpellOntarget(Memory.Memory wow, int UnitIndex, int Spell)
 {
     if (wow.Objects[UnitIndex].Auras == null)
     {
         return(true);
     }
     for (int i = 0; i < wow.Objects[UnitIndex].Auras.Count; i++)
     {
         if (wow.Objects[UnitIndex].Auras[i].auraId == Spell)
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 6
0
 private void InitMain()
 {
     wow     = new Memory.Memory();
     SS      = new SpellSearcher();
     FH      = new FarmHonor();
     Farmer  = new Farm();
     Running = false;
     PCoord  = new List <Coords>();
     if (wow.wow.ProcessId != 0)
     {
         notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString();
         WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + ".");
         MainTimer.Enabled = true;
     }
     else
     {
         WowControl.UpdateStatus("Not found wow process.");
         notifyIcon1.Text = "Farmhelper: not found wow process";
     }
     WowControl.LoadGoods();
     ProcessMainPage();
 }
Esempio n. 7
0
 public static void Moving(Memory.Memory wow, int Target, int BestAbilityIndex)
 {
     if (Target > 0)
     {
         if (WowControl.ClassType == 1)
         {
             if (Abilities.AbilityStatus != "Casting")
             {
                 Button(BindingsList[BestAbilityIndex].AbilityName);
                 wow.GoTo(0, 0, 0, wow.Objects[Abilities.Target].GUID, 11);
             }
         }
         else
         {
             double Range = WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Abilities.Target].X, wow.Objects[Abilities.Target].Y, wow.Objects[Abilities.Target].Z);
             if (Range > 25)
             {
                 if (Abilities.AbilityStatus != "Casting")
                 {
                     wow.GoTo(wow.Objects[Abilities.Target].X, wow.Objects[Abilities.Target].Y, wow.Objects[Abilities.Target].Z, wow.Objects[Abilities.Target].GUID, 4);
                 }
             }
             else
             {
                 Button(BindingsList[BestAbilityIndex].AbilityName);
                 wow.GoTo(0, 0, 0, 0, 3);
                 WowControl.Sleep(100);
                 wow.GoTo(0, 0, 0, wow.Objects[Abilities.Target].GUID, 1);
             }
         }
         if (WowControl.ErrorState == "Bad target")
         {
             //WowControl.BadObjects.Add(wow.Objects[Abilities.Target].GUID);
             WowControl.UpdateCombatLog("Bad target " + wow.Objects[Abilities.Target].Name + ".");
         }
     }
 }
Esempio n. 8
0
 private void button16_Click(object sender, EventArgs e)
 {
     if (Process.GetProcessesByName("wow").Length > 1)
     {
         ProcessSelect PS = new ProcessSelect();
         PS.ShowDialog();
         wow     = new Memory.Memory();
         wow.PId = PS.PId;
         wow.InitMemory();
         FH      = new FarmHonor();
         Farmer  = new Farm();
         Running = false;
         PCoord  = new List <Coords>();
         if (wow.wow.ProcessId != 0)
         {
             WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + ".");
             MainTimer.Enabled = true;
             notifyIcon1.Text  = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString();
         }
         else
         {
             WowControl.UpdateStatus("Not found wow process.");
             notifyIcon1.Text = "Farmhelper: not found wow process";
         }
         WowControl.LoadGoods();
         ProcessMainPage();
     }
     if (Process.GetProcessesByName("wow").Length == 1)
     {
         WowControl.UpdateStatus("Only one process found.");
         InitMain();
     }
     if (Process.GetProcessesByName("wow").Length == 0)
     {
         WowControl.UpdateStatus("Not found wow process.");
     }
 }
 /// <summary>
 /// Main method for node evaluation purposes
 /// </summary>
 /// <param name="perceivedEvent">The event tht is reacted to</param>
 /// <param name="memory">Character's memory and knowledge</param>
 /// <param name="traits">Chracter's traits</param>
 /// <returns>Test passed</returns>
 protected virtual bool EvaluateNode(PerceivedEvent perceivedEvent, Memory.Memory memory, CharacterTraits traits)
 {
     throw new NotImplementedException();
 }
Esempio n. 10
0
        private bool _paused; //To ensure the cpu is paused

        #endregion Fields

        #region Constructors

        /// <summary>
        /// The 6502
        /// </summary>
        /// <param name="memory">The memory</param>
        /// <param name="tvFormat">The TV format</param>
        public Cpu(Memory.Memory memory, TvFormat tvFormat, NesEngine engine)
        {
            _engine = engine;
            MEM = memory;
            InitializeCPU(tvFormat);
        }
Esempio n. 11
0
 private void InitMain()
 {
     wow = new Memory.Memory();
     SS = new SpellSearcher();
     FH = new FarmHonor();
     Farmer = new Farm();
     Running = false;
     PCoord = new List<Coords>();
     if (wow.wow.ProcessId != 0)
     {
         notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString();
         WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + ".");
         MainTimer.Enabled = true;
     }
     else
     {
         WowControl.UpdateStatus("Not found wow process.");
         notifyIcon1.Text = "Farmhelper: not found wow process";
     }
     WowControl.LoadGoods();
     ProcessMainPage();
 }
Esempio n. 12
0
 private void button16_Click(object sender, EventArgs e)
 {
     if (Process.GetProcessesByName("wow").Length > 1)
     {
         ProcessSelect PS = new ProcessSelect();
         PS.ShowDialog();
         wow = new Memory.Memory();
         wow.PId = PS.PId;
         wow.InitMemory();
         FH = new FarmHonor();
         Farmer = new Farm();
         Running = false;
         PCoord = new List<Coords>();
         if (wow.wow.ProcessId != 0)
         {
             WowControl.UpdateStatus("Attached to wow: " + wow.wow.ProcessId.ToString() + ".");
             MainTimer.Enabled = true;
             notifyIcon1.Text = "Farmhelper: attached to wow: " + wow.wow.ProcessId.ToString();
         }
         else
         {
             WowControl.UpdateStatus("Not found wow process.");
             notifyIcon1.Text = "Farmhelper: not found wow process";
         }
         WowControl.LoadGoods();
         ProcessMainPage();
     }
     if (Process.GetProcessesByName("wow").Length == 1)
     {
         WowControl.UpdateStatus("Only one process found.");
         InitMain();
     }
     if (Process.GetProcessesByName("wow").Length == 0)
         WowControl.UpdateStatus("Not found wow process.");
 }
Esempio n. 13
0
 public VICMemory(Memory.Memory mainMemory)
 {
     _mainMemory = mainMemory;
 }
Esempio n. 14
0
 protected void ResetMemoryItems(Memory.Memory memory)
 {
     memory.ResetShortTermMemory();
 }
Esempio n. 15
0
        public static bool SubCheckAbilityOptions(int AbilityIndex, Memory.Memory wow, String Type, int Unit)
        {
            bool result      = false;
            int  PlayerRange = 0;

            if (WowControl.ClassType == 0)            //Ranged
            {
                PlayerRange = 30;
            }
            else
            {
                PlayerRange = 7;
            }
            if (AbilityIndex == 14)
            {
                int y = 0;
                y++;
            }
            double Range = Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z));

            for (int i = 0; i < BindingsList[AbilityIndex].OptionsList.Count; i++)
            {
                if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Player") & (Unit == 0))
                {
                    if (i == 0)
                    {
                        result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                    }
                    else
                    {
                        if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND")
                        {
                            result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                        else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR")
                        {
                            result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                    }
                }
                else if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy") & (wow.Objects[Unit].Faction != wow.Objects[0].Faction) & (Range <= WowControl.EnemyCheckRange))
                {
                    if (i == 0)
                    {
                        result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                    }
                    else
                    {
                        if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND")
                        {
                            result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                        else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR")
                        {
                            result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                    }
                }
                else if ((BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend") & (wow.Objects[Unit].Faction == wow.Objects[0].Faction) & (Range <= WowControl.FriendCheckRange))
                {
                    if (i == 0)
                    {
                        result = CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                    }
                    else
                    {
                        if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "AND")
                        {
                            result = result & CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                        else if (BindingsList[AbilityIndex].OptionsList[i - 1].AndOr == "OR")
                        {
                            result = result | CheckOptionsValues(Unit, BindingsList[AbilityIndex].OptionsList[i].Parameter, BindingsList[AbilityIndex].OptionsList[i].Condition, BindingsList[AbilityIndex].OptionsList[i].Value, wow);
                        }
                    }
                }
            }
            if (result == true)
            {            //Выставляем приоритет
                int Priority = 0;
                if (wow.Objects[Unit].MaxHealth != 0)
                {
                    int Health = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100);
                    if (wow.Objects[Unit].Faction == wow.Objects[0].Faction)
                    {                    //Friend or player
                        if (Unit == 0)   //Player
                        {
                            Priority = Health * 2;
                        }
                        else
                        {
                            Priority = Convert.ToInt32(Health + (PlayerRange - Range) * 100 / 30);
                        }
                    }
                    else
                    {                    //Enemy
                        Priority = Convert.ToInt32(Health + (PlayerRange - Range) * 100 / 30);
                    }
                    if (Prioritets[AbilityIndex, Unit].Prioritet < Priority)
                    {
                        Prioritets[AbilityIndex, Unit].Prioritet = Priority;
                    }
                    if (Priority >= Prioritets[AbilityIndex, Unit].Prioritet)
                    {
                        Prioritets[AbilityIndex, Unit].GUID = wow.Objects[Unit].GUID;
                    }
                    if ((Math.Abs(wow.Objects[0].Level - wow.Objects[Unit].Level) > 5) & (Type == "Bg"))
                    {
                        Prioritets[AbilityIndex, Unit].Prioritet = 0;
                    }
                }

                /*
                 * for (int i = 0; i < BindingsList[AbilityIndex].OptionsList.Count; i++)
                 * {//Прогоняем все опции для абилы
                 *      if (wow.Objects[Unit].MaxHealth != 0)
                 *      {
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend")
                 *              {
                 *                      if (BindingsList[AbilityIndex].OptionsList[i].Parameter != "SpellID")
                 *                              Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3;
                 *                      else Priority = 90;
                 *                      if (Unit == 0)
                 *                              Priority *= 2;
                 *              }
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player")
                 *                      if (BindingsList[AbilityIndex].OptionsList[i].Parameter != "SpellID")
                 *                              Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4;
                 *                      else Priority = 90;
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy")
                 *              {
                 *                      double param =(PlayerRange - Range) / 10;
                 *                      if (param > 0)
                 *                              Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100 * param);
                 *              }
                 *      }
                 *      if (Prioritets[AbilityIndex, Unit].Prioritet < Priority)
                 *              Prioritets[AbilityIndex, Unit].Prioritet = Priority;
                 *
                 *      /*
                 *      if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "SpellID")
                 *      {
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend")
                 *              {
                 *                      Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3;
                 *                      if (Unit == 0)
                 *                              Priority *= 2;
                 *              }
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player")
                 *                      Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4;
                 *              if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy")
                 *              {
                 *                      int param = Convert.ToInt32((PlayerRange - Range) / 10);
                 *                      Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100) * param;
                 *              }
                 *      } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Health")
                 *      {
                 *              if (wow.Objects[Unit].MaxHealth != 0)
                 *              {
                 *                      if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Friend")
                 *                      {
                 *                              Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 3;
                 *                              if (Unit == 0)
                 *                                      Priority *= 2;
                 *                      }
                 *                      if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Player")
                 *                              Priority = (100 - (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100)) * 4;
                 *                      if (BindingsList[AbilityIndex].OptionsList[i].Unit == "Enemy")
                 *                      {
                 *                              int param = Convert.ToInt32((PlayerRange - Range) / 10);
                 *                              Priority = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100) * param;
                 *                      }
                 *              }
                 *              if (Prioritets[AbilityIndex, Unit].Prioritet < Priority)
                 *                      Prioritets[AbilityIndex, Unit].Prioritet = Priority;
                 *      } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Range")
                 *      {
                 *              if (Prioritets[AbilityIndex, Unit].Prioritet == 0)
                 *                      if (WowControl.ClassType == 0)//Ranged
                 *                              Priority = 100 - Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z));
                 *                      else Priority = 100 - Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z)) * 2;
                 *              if (Prioritets[AbilityIndex, Unit].Prioritet < Priority)
                 *                      Prioritets[AbilityIndex, Unit].Prioritet = Priority;
                 *      } else if (BindingsList[AbilityIndex].OptionsList[i].Parameter == "Power")
                 *      {
                 *              if (Prioritets[AbilityIndex, Unit].Prioritet == 0)
                 *                      Priority = 70;
                 *      }
                 *
                 * }*/
            }
            return(result);
        }
Esempio n. 16
0
        public static void UseAbilities(Memory.Memory wow, String Type)
        {
            Ability[] Bindings = BindingsList.ToArray();
            Prioritets = new AbilityPrioritet[BindingsList.Count, wow.Objects.Count];
            if (EndCast <= DateTime.Now)
            {
                AbilityStatus = "Ready";
            }
            if (AbilityStatus == "Ready")
            {
                for (int i = 0; i < Bindings.Length; i++)
                {                //Прогоняем все абилы
                    if (Bindings[i].Try < 5)
                    {
                        if ((DateTime.Now - Bindings[i].LastUse).TotalSeconds >= Bindings[i].CoolDown)
                        {
                            if ((Bindings[i].InCombat >= 0) & (Bindings[i].InCombat <= 2))
                            {
                                CheckAbilityOptions(i, wow, Type);
                            }
                        }
                    }
                }

                int MaxPriority      = 0;
                int BestAbilityIndex = -1;
                int BestUnit         = -1;
                for (int Unit = 0; Unit < wow.Objects.Count; Unit++)
                {
                    for (int i = 0; i < BindingsList.Count; i++)
                    {
                        if (MaxPriority < Prioritets[i, Unit].Prioritet)
                        {
                            BestUnit         = Unit;
                            MaxPriority      = Prioritets[i, Unit].Prioritet;
                            BestAbilityIndex = i;
                        }
                    }
                }
                if (BestAbilityIndex != -1)
                {
                    Target = WowControl.GetUnitIndexByGuid(wow, Prioritets[BestAbilityIndex, BestUnit].GUID);
                    WowControl.SelectTarget(Prioritets[BestAbilityIndex, BestUnit].GUID);
                    if (Target != 0)
                    {
                        Moving(wow, Target, BestAbilityIndex);
                    }
                    if (Target == 0)
                    {
                        Button(BindingsList[BestAbilityIndex].AbilityName);
                    }
                    int Health = 0;
                    if (wow.Objects[Target].MaxHealth != 0)
                    {
                        Health = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Target].Health) / Convert.ToDouble(wow.Objects[Target].MaxHealth) * 100);
                    }
                    WowControl.UpdateCombatLog(WowControl.GetTimeStr() + " Using \"" + Bindings[BestAbilityIndex].AbilityName + "\" on \"" + wow.Objects[Target].Name + "\" Health = " + Health + ".");
                    Bindings[BestAbilityIndex].LastUse = BindingsList[BestAbilityIndex].LastUse;
                }
                else
                {
                    Target = -1;
                }
                BindingsList.Clear();
                for (int i = 0; i < Bindings.Length; i++)
                {
                    BindingsList.Add(Bindings[i]);
                }
            }
        }
Esempio n. 17
0
        public static bool CheckOptionsValues(int Unit, String Parameter, String Condition, String Value, Memory.Memory wow)
        {
            bool result     = false;
            int  UnitParam  = 0;
            int  ValueParam = Convert.ToInt32(Value);

            if (Parameter == "Health")
            {
                if (wow.Objects[Unit].MaxHealth != 0)
                {
                    UnitParam = (int)Convert.ToInt64(Convert.ToDouble(wow.Objects[Unit].Health) / Convert.ToDouble(wow.Objects[Unit].MaxHealth) * 100);
                }
            }
            if (Parameter == "SpellID")
            {
                if (IsSpellOntarget(wow, Unit, Convert.ToInt32(Value)) == true)
                {
                    if (Condition == "=")
                    {
                        return(true);
                    }
                    else if (Condition == "!=")
                    {
                        return(false);
                    }
                }
                else
                {
                    if (Condition == "=")
                    {
                        return(false);
                    }
                    else if (Condition == "!=")
                    {
                        return(true);
                    }
                }
            }
            if (Parameter == "Range")
            {
                UnitParam = Convert.ToInt32(WowControl.CheckPoint(wow.Objects[0].X, wow.Objects[0].Y, wow.Objects[0].Z, wow.Objects[Unit].X, wow.Objects[Unit].Y, wow.Objects[Unit].Z));
            }
            if (Parameter == "Power")
            {
                UnitParam = wow.Objects[Unit].Power;
            }
            if (Condition == ">")
            {
                result = (UnitParam > ValueParam);
            }
            else if (Condition == "<")
            {
                result = (UnitParam < ValueParam);
            }
            else if (Condition == "=")
            {
                result = (UnitParam == ValueParam);
            }
            else if (Condition == "!=")
            {
                result = (UnitParam != ValueParam);
            }
            return(result);
        }
Esempio n. 18
0
        public static UInt64 CheckAbilityOptions(int AbilityIndex, Memory.Memory wow, String Type)
        {
            for (int Unit = 0; Unit < wow.Objects.Count; Unit++)
            {
                if (Type != "Bg")
                {
                    if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1))
                    {
                        switch (BindingsList[AbilityIndex].InCombat)
                        {
                        case 0:                                //Always
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 1:                                //In combat
                            if (wow.Objects[0].IsInCombat != 1)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 2:                                //Out of combat
                            if (wow.Objects[0].IsInCombat != 0)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;
                        }
                    }
                }
                else
                {
                    if ((WowControl.CheckForBad(wow.Objects[Unit].GUID) == false) & (wow.Objects[Unit].Health > 1) & (wow.Objects[Unit].Type == 4))
                    {
                        switch (BindingsList[AbilityIndex].InCombat)
                        {
                        case 0:                                //Always
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 1:                                //In combat
                            if (wow.Objects[0].IsInCombat != 1)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;

                        case 2:                                //Out of combat
                            if (wow.Objects[0].IsInCombat != 0)
                            {
                                break;
                            }
                            if ((SubCheckAbilityOptions(AbilityIndex, wow, Type, Unit) == true) & (Prioritets[AbilityIndex, Unit].Prioritet != 0))
                            {
                                return(wow.Objects[Unit].GUID);
                            }
                            break;
                        }
                    }
                }
            }
            return(0);
        }
Esempio n. 19
0
        //public void LearnFromMyExperiences(Character learningCharacter)
        //{
        //    if (!LearningThresholdReached(learningCharacter.MyMemory))
        //        return;

        //    long[] times = new long[9];
        //    var timer = new Stopwatch();

        //    timer.Start();
        //    //TODO : Thead this
        //    AdjustEmotionalStates(learningCharacter);
        //    timer.Stop();
        //    times[0] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    //FormOpinions(learningCharacter);
        //    //timer.Stop();
        //    //times[1] = timer.ElapsedMilliseconds;
        //    //timer.Start();

        //    //AdjustDesires(learningCharacter);
        //    //timer.Stop();
        //    //times[2] = timer.ElapsedMilliseconds;
        //    //timer.Start();

        //    AdjustQualityTraits(learningCharacter);
        //    timer.Stop();
        //    times[3] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    AdjustPersonalValues(learningCharacter);
        //    timer.Stop();
        //    times[4] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    TransfertRecentActionsToLongTerm(learningCharacter);
        //    timer.Stop();
        //    times[5] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    //Decision trees analyze actions on the long term. Recent must be
        //    //transfered to long term beforehand to make it easier.
        //    EvolveDecisionTrees(learningCharacter);
        //    //Speech patterns
        //    timer.Stop();
        //    times[6] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    TransfertMemoriesToLongTerm(learningCharacter);
        //    timer.Stop();
        //    times[7] = timer.ElapsedMilliseconds;
        //    timer.Start();

        //    //Resetting Values
        //    ResetMemoryItems(learningCharacter.MyMemory);
        //    ResetNodeResults(learningCharacter.MyMemory);
        //    learningCharacter.MyTraits.ResetEmotions();

        //    timer.Stop();
        //    times[8] = timer.ElapsedMilliseconds;

        //    File.AppendAllText("C:\\logs\\log.txt", string.Join("\t", times) + Environment.NewLine);
        //    //actions?
        //}

        protected virtual bool LearningThresholdReached(Memory.Memory memory)
        {
            return(memory.GetNodeTestResultsCount() >= LearningParameters.MinimumLearningThreshold);
        }
Esempio n. 20
0
File: Farm.cs Progetto: Bia10/clrn
 public Farm()
 {
     wow = new Memory.Memory();
 }
Esempio n. 21
0
 protected void ResetNodeResults(Memory.Memory memory)
 {
     memory.ResetNodeTestResults();
 }
Esempio n. 22
0
 public Farm()
 {
     wow = new Memory.Memory();
 }