public Monster(MonsterStatus stats, Sprite sprite, SpriteManager sm) { this.stats = stats; this.sprite = sprite; this.SM = sm; currenttask = new Task(Task.Type.Poop, null); currenttask.status = Task.Status.Done; }
public void Update(GameTime gametime) { if (TM.taskIsEmpty() == false) { if (currenttask.status == Task.Status.Done) { currenttask = TM.GetTask(); } switch (currenttask.type) { case Task.Type.Poop: { ExePoop(currenttask.paramaters); currenttask.status = Task.Status.Done; TM.RemoveTask(); break; } case Task.Type.Move: { if (currenttask.status == Task.Status.Exe) { if (sprite.position == (Vector2)currenttask.paramaters[0]) { currenttask.status = Task.Status.Done; } } else if (currenttask.status == Task.Status.Done) { TM.RemoveTask(); } else { currenttask.status = Task.Status.Exe; ExeMove(currenttask.paramaters); } break; } } } else { //Console.WriteLine("Waiting for task"); } }
public Task(Task.Type type, ArrayList paramaters) { this._status = Status.Wait; this._type = type; this.paramaters = paramaters; }
public void AddTask(Task newTask) { TaskQueue.Add(newTask); }