Example #1
0
        public CharacterFeatures GetEnemy(CharacterFeatures fighter)
        {
            CharacterFeatures enemy;

            if (fighter is Pretre)
            {
                enemy = Fighters.FirstOrDefault(x => x.IsUndead);

                if (enemy != null)
                {
                    return(enemy);
                }
            }

            do
            {
                var otherFighters = Fighters
                                    .Where(x => x.Id != fighter.Id && !x.IsDead() && x.CurrentLife > 0 && !x.IsHide).ToList();

                //AfficherListeEnnemi(otherFighters);

                if (otherFighters.Count == 0)
                {
                    otherFighters = Fighters
                                    .Where(x => x.Id != fighter.Id && !x.IsDead() && x.CurrentLife > 0 && x.IsHide).ToList();
                }

                var randomEnemy = Random.Next(otherFighters.Count(f => f.Id != fighter.Id && !f.IsDead()));

                enemy = otherFighters[randomEnemy];
            } while (enemy.Id == fighter.Id);

            return(enemy);
        }
Example #2
0
        public static Fighter GetOrCreateFighter(string fullName)
        {
            if (fullName.Equals("Unknown") || fullName.Equals("Uknown"))
            {
                return(null);
            }

            var index = fullName.LastIndexOf(' ');

            if (index < 0)
            {
                return(null);
            }

            var firstname = fullName.Substring(0, index);
            var lastname  = fullName.Substring(index + 1);

            var fighter
                = Fighters
                  .FirstOrDefault(f => f.LastName.Equals(lastname) && (f.FirstName.Contains(firstname) || firstname.Contains(f.FirstName)));

            if (fighter == null)
            {
                fighter = new Fighter(NextFighterId++, firstname, lastname, null);
                Fighters.Add(fighter);
            }

            return(fighter);
        }
Example #3
0
        protected IFighter GetFighter(double fighterId)
        {
            lock (CheckLock)
            {
                //Logger.Default.Log($"Looking for id [{fighterId}]");

                //foreach (var monster in Account.Character.Map.Monsters)
                //    Logger.Default.Log($"[Monster]{monster.GroupName} has id {monster.Id} and level [{monster.GroupLevel}]");
                //foreach (var fighter in Fighters)
                //    Logger.Default.Log($"[Fighter]Fighter on {fighter.CellId} has id {fighter.Id}");
                //foreach (var companion in Companions)
                //    Logger.Default.Log($"[Companion]{companion.Name} has id {companion.Id}");

                if (Monsters.Find(x => x.Id == fighterId) != null)
                {
                    return(Monsters.FirstOrDefault(m => m.Id == fighterId));
                }
                //else if (Companions.Find(x => x.Id == fighterId) != null)
                //    return Companions.FirstOrDefault(c => c.Id == fighterId);
                else
                {
                    return(Fighters.FirstOrDefault(f => f.Id == fighterId));
                }
            }
        }
Example #4
0
 protected IFighter GetFighter(double fighterId)
 {
     return(Monsters.Find(x => x.Id == fighterId) != null
         ? Monsters.FirstOrDefault(m => m.Id == fighterId)
         : (Companions.Find(x => x.Id == fighterId) != null
             ? Companions.FirstOrDefault(c => c.Id == fighterId)
             : Fighters.FirstOrDefault(f => f.Id == fighterId)));
 }
Example #5
0
 public FighterEntry GetFighterInCell(short cell)
 {
     if (PlayedFighter?.CellId == cell)
     {
         return(PlayedFighter);
     }
     return(Fighters.FirstOrDefault(f => f.Alive && f.CellId == cell));
 }
Example #6
0
 protected bool IsCellWalkable(int cellId)
 {
     lock (CheckLock)
     {
         var mapData = (API.Gamedata.D2p.Map)Account.Character.Map.Data;
         if (!Account.Character.Map.Data.IsWalkable(cellId))
         {
             return(false);
         }
         var selectedFighter =
             Fighters.FirstOrDefault(f => f.CellId == cellId ||
                                     mapData.Cells[cellId].NonWalkableDuringFight);
         return(selectedFighter == null);
     }
 }
Example #7
0
 public Fighter GetFighterTarget(string character)
 {
     return(Fighters.FirstOrDefault(x => x.Name.ToLower() != character.ToLower()));
 }