public void RemoveLivable(ILivable livable) { ILivable ded; _Livables.TryRemove(livable, out ded); _AnimationQueue.TryRemove(livable, out ded); Display.RemoveLivable(livable); }
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]); }
public void AddLivable(ILivable livable) { _Livables.TryAdd(livable, livable); Thread th = new Thread(new ThreadStart(livable.Run)); th.Start(); Display.AddLivable(livable); }
private void EnemyOnDie(ILivable livable) { if (livable is not Enemy enemy) { return; } _availableEnemies.Enqueue(enemy); _enemies.Remove(enemy); World.RemoveGameObject(enemy); }
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); }
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); }
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); }
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(); }
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; } } }
private void UpdateHudOnPlayerHealthChanged(ILivable livable, int delta) { _hpBar.CurrentValue = livable.Health; _hpBar.MaxValue = livable.MaxHealth; }
protected override void OnDie(ILivable livable) { base.OnDie(livable); }