Example #1
0
 /// <summary>
 /// Clear all the fields.
 /// </summary>
 public void Reset(bool isFightStarted = false, bool canSayReady = false)
 {
     m_Summons.Clear();
     Fighters.Clear();
     DeadEnnemies.Clear();
     Options.Clear();
     TotalLaunchBySpell.Clear();
     LastTurnLaunchBySpell.Clear();
     TotalLaunchByCellBySpell.Clear();
     DurationByEffect.Clear();
     IsFightStarted = isFightStarted;
     WaitForReady = (!isFightStarted && canSayReady);
     followingGroup = null;
 }
Example #2
0
 /// <summary>
 /// Ban a group of monsters (we won't try to launch a fight against them).
 /// </summary>
 private void BanMonsters(MonsterGroup m)
 {
     Banned.Add(m);
 }
Example #3
0
        public bool SearchFight()
        {
            m_Account.Path.Stop = true;
            int minNumber = (int)m_Account.nudMinMonstersNumber.Value;
            int maxNumber = (int)m_Account.nudMaxMonstersNumber.Value;
            int minLevel = (int)m_Account.nudMinMonstersLevel.Value;
            int maxLevel = (int)m_Account.nudMaxMonstersLevel.Value;
            lock(this.clock)
            {
                foreach (MonsterGroup monsters in m_Account.Map.List)
                {
                    int monstersCount = monsters.m_staticInfos.underlings.Count() + 1;
                    int monstersLevel = 0;
                    List<string> monstersname = new List<string>();

                    if (monstersCount < minNumber || monstersCount > maxNumber)
                    {
                        continue;
                    }
                    foreach (MonsterInGroupInformations monster in monsters.m_staticInfos.underlings)
                    {
                        DataClass monsterData = GameData.GetDataObject(D2oFileEnum.Monsters, monster.creatureGenericId);
                        object monsterGrades = monsterData.Fields["grades"];
                        ArrayList monsterGrades2 = (ArrayList)monsterGrades;
                        DataClass monsterGradeData = (DataClass)monsterGrades2[Convert.ToInt32(monster.grade) - 1];
                        monstersLevel += Convert.ToInt32(monsterGradeData.Fields["level"]);
                        monstersname.Add(BlueSheep.Common.Data.I18N.GetText((int)monsterData.Fields["nameId"]));
                    }
                    DataClass mainmonsterData = GameData.GetDataObject(D2oFileEnum.Monsters, monsters.m_staticInfos.mainCreatureLightInfos.creatureGenericId);
                    object mainmonsterGrades = mainmonsterData.Fields["grades"];
                    ArrayList mainmonsterGrades2 = (ArrayList)mainmonsterGrades;
                    DataClass mainmonsterGradeData = (DataClass)mainmonsterGrades2[Convert.ToInt32(monsters.m_staticInfos.mainCreatureLightInfos.grade) - 1];
                    monstersLevel += Convert.ToInt32(mainmonsterGradeData.Fields["level"]);
                    monstersname.Add(BlueSheep.Common.Data.I18N.GetText((int)mainmonsterData.Fields["nameId"]));

                    if (monstersLevel < minLevel || monstersLevel > maxLevel)
                    {
                        continue;
                    }
                    if (m_Account.VerifGroup(monstersname) == false)
                        continue;
                    string names = "";
                    foreach (string item in monstersname)
                    {
                        //Account.Log("names = " + names + Environment.NewLine + "item = " + item);
                        names = names + item;
                        if (monstersname.IndexOf(item) != monstersname.Count - 1)
                            names = names + ",";
                    }
                    this.followinggroup = monsters;
                    if (m_Account.Map.MoveToCell(monsters.m_cellId))
                    {
                        m_Account.ModifBar(6, 0, 0, "Déplacement");
                        //m_Account.Log(new BotTextInformation(monsters.disposition.cellId.ToString() + "/" + m_Account.Map.Character.CellId));

                        m_Account.Path.Stop = true;
                        m_Account.Log(new ActionTextInformation(string.Format("Lancement d'un combat contre {0} monstres de niveau {1} ({2})", monstersCount, monstersLevel, names)),1);
                        //m_Account.Log(new BotTextInformation(monsters.contextualId.ToString()));
                        return true;
                        //m_Account.Map.List.Remove(entity);
                    }

                }
            }
            return false;
        }