private IEnumerable <Act.Status> Cleanup(CreatureAI creature) { if (creature.Blackboard.GetData <bool>("NoPath", false)) { creature.SetMessage("Failed to plant. Task was unreachable."); yield return(Act.Status.Fail); yield break; } yield return(Act.Status.Success); }
public IEnumerable <Act.Status> PenAnimal(CreatureAI agent, CreatureAI creature, AnimalPen animalPen) { foreach (var status in animalPen.AddAnimal(Animal.Physics, agent.Faction)) { if (status == Act.Status.Fail) { creature.ResetPositionConstraint(); agent.SetMessage("Failed to pen animal."); yield return(Act.Status.Fail); yield break; } } yield return(Act.Status.Success); }
private IEnumerable <Act.Status> Cleanup(CreatureAI creature) { if (creature.Blackboard.GetData <bool>("NoPath", false)) { if (creature.Faction == creature.World.PlayerFaction) { creature.World.MakeAnnouncement(String.Format("{0} cancelled farming task because it is unreachable", creature.Stats.FullName)); creature.World.TaskManager.CancelTask(this); } creature.SetMessage("Failed to plant. Task was unreachable."); yield return(Act.Status.Fail); yield break; } yield return(Act.Status.Success); }