コード例 #1
0
        public IEnumerable <Act.Status> ReleaseAnimal(CreatureAI animal, CreatureAI creature)
        {
            if (creature.Blackboard.GetData <bool>("NoPath", false) &&
                animal.GetRoot().GetComponent <Physics>().HasValue(out var animalPhysics) &&
                creature.World.PersistentData.Designations.GetEntityDesignation(animalPhysics, DesignationType.Wrangle).HasValue(out var designation) &&
                creature.Faction == creature.World.PlayerFaction)
            {
                creature.World.MakeAnnouncement(String.Format("{0} stopped trying to catch {1} because it is unreachable.", creature.Stats.FullName, animal.Stats.FullName));
                creature.World.TaskManager.CancelTask(designation.Task);
            }

            animal.ResetPositionConstraint();
            yield return(Act.Status.Success);
        }
コード例 #2
0
        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();
                    yield return(Act.Status.Fail);

                    yield break;
                }
            }
            yield return(Act.Status.Success);
        }
コード例 #3
0
 public IEnumerable <Act.Status> ReleaseAnimal(CreatureAI animal)
 {
     animal.ResetPositionConstraint();
     yield return(Act.Status.Success);
 }