Exemplo n.º 1
0
        public void RemoveLivable(ILivable livable)
        {
            ILivable ded;

            _Livables.TryRemove(livable, out ded);
            _AnimationQueue.TryRemove(livable, out ded);
            Display.RemoveLivable(livable);
        }
Exemplo n.º 2
0
 public void DrawEntity(ILivable livable)
 {
     //ISoldier entity = livable.Soldier;
     //int[] loc = entity.Location;
     int[] loc = livable.Location;
     Console.SetCursorPosition(loc[0], loc[1]);
     Console.Write(_Models[livable.Level]);
 }
Exemplo n.º 3
0
        public void AddLivable(ILivable livable)
        {
            _Livables.TryAdd(livable, livable);
            Thread th = new Thread(new ThreadStart(livable.Run));

            th.Start();
            Display.AddLivable(livable);
        }
Exemplo n.º 4
0
 private void EnemyOnDie(ILivable livable)
 {
     if (livable is not Enemy enemy)
     {
         return;
     }
     _availableEnemies.Enqueue(enemy);
     _enemies.Remove(enemy);
     World.RemoveGameObject(enemy);
 }
Exemplo n.º 5
0
 public void RemoveLivable(ILivable livable)
 {
     //_AnimationQueue.Remove(livable);
     //ISoldier entity = livable.Soldier;
     //int[] loc = entity.Location;
     int[] loc = livable.Location;
     Console.SetCursorPosition((loc[0] > 2) ? loc[0] - 3 : loc[0], loc[1]);
     Console.Write("     ");
     //_Animators.Remove(livable);
     //_Livables.TryRemove(livable, out livable);
     //_AnimationQueue.TryRemove(livable, out livable);
     //_AnimationQueue.RemoveAll(i => i.Id == livable.Id);
 }
Exemplo n.º 6
0
        public void AddLivable(ILivable livable)
        {
            //_Livables.TryAdd(livable, livable);
            //ISoldier entity = livable.Soldier;
            Random r = new Random(livable.GetHashCode() * this.GetHashCode() / 2);

            //entity.Location = new int[2] { 0, r.Next(0, height) };
            livable.Location = new int[2] {
                0, r.Next(0, height)
            };
            //livable.Soldier = entity;
            DrawEntity(livable);
        }
Exemplo n.º 7
0
 public void AnimateEntity(ILivable livable)
 {
     //ISoldier entity = livable.Soldier;
     //int[] loc = entity.Location;
     int[] loc = livable.Location;
     //Console.SetCursorPosition((loc[0] > 1) ? loc[0] - 1 : loc[0], loc[1]);
     //Console.Write("  ");
     for (int i = loc[0] - 5; i < loc[0]; i++)
     {
         Console.SetCursorPosition((i > 0) ? i : 0, loc[1]);
         Console.Write(" ");
     }
     DrawEntity(livable);
 }
Exemplo n.º 8
0
        public void UpdateLivable(ILivable livable)
        {
            ISoldier s = livable.Soldier;

            int[] loc = s.Location;
            if (_Display.ReachedFort(loc))
            {
                _Fort.Damage(livable.Soldier.Strength);
                Display.UpdateFort();
                livable.Die();
            }
            else
            {
                _AnimationQueue.TryAdd(livable, livable);
            }
            CheckAnimationQueue();
        }
Exemplo n.º 9
0
 public void CheckAnimationQueue()
 {
     if (_CurrentAnimator == null && _AnimationQueue.Count > 0)
     {
         //Console.SetCursorPosition(60, 0);
         //Console.Write(_AnimationQueue.Count);
         //int i = _AnimationQueue.Keys.Count;
         //Random r = new Random();
         //ILivable entity = _AnimationQueue.Keys.ToArray<ILivable>()[r.Next(i)];
         ILivable entity = _AnimationQueue.First().Key;
         _AnimationQueue.TryRemove(entity, out entity);
         //_Animators.Remove(entity);
         if (entity != null && !_Fort.isDead())
         {
             _CurrentAnimator = entity;
             Display.AnimateEntity(entity);
             _CurrentAnimator = null;
         }
     }
 }
Exemplo n.º 10
0
 private void UpdateHudOnPlayerHealthChanged(ILivable livable, int delta)
 {
     _hpBar.CurrentValue = livable.Health;
     _hpBar.MaxValue     = livable.MaxHealth;
 }
Exemplo n.º 11
0
 protected override void OnDie(ILivable livable)
 {
     base.OnDie(livable);
 }