public bool TryAddWorker(Creature creature) { if (Workers.Count + _addEuque.Count() + 1 > WorkerPlaces) return false; _addEuque.Enqueue(creature); return true; }
protected override bool DoWork(Creature creature, float dt) { if (creature.ResoursesStorage.CheckResourse(Resourses.Wood) <= 0) { creature.CreatureState = CreatureState.Idle; Remove(creature); return false; } Elapsed += dt; if(Elapsed >= NeedTime) { Elapsed -= NeedTime; creature.ResoursesStorage.AddResourse(Resourses.Board, 1); creature.ResoursesStorage.DiscardResourse(Resourses.Wood, 1); } return true; }
public void Remove(Creature creature) { _deleteEuque.Enqueue(creature); }
public bool IsOnWork(Creature creature) { return Workers.Any(p => p == creature); }
protected abstract bool DoWork(Creature creature, float dt);
protected override bool DoWork(Creature creature, float dt) { return false; }