Inheritance: MonoBehaviour
Esempio n. 1
0
 public void StartWithAnimalSequence(AnimalBase animal, int actorPoseID, int animalPoseID)
 {
     if (Object.op_Equality((Object)animal, (Object)null))
     {
         return;
     }
     switch (this)
     {
     case AgentActor _:
     case PlayerActor _:
         this._withAnimalEnumerator = this.StartWithAnimalSequenceCoroutine(animal, actorPoseID, animalPoseID);
         animal.SetImpossible(true, this);
         animal.SetState(!(this is AgentActor) ? AnimalState.WithPlayer : AnimalState.WithAgent, (System.Action)null);
         if (this._withAnimalDisposable != null)
         {
             this._withAnimalDisposable.Dispose();
         }
         this._withAnimalDisposable = (IDisposable)DisposableExtensions.AddTo <IDisposable>((M0)ObservableExtensions.Subscribe <Unit>((IObservable <M0>)Observable.FromCoroutine((Func <IEnumerator>)(() => this._withAnimalEnumerator), false), (System.Action <M0>)(_ => {}), (System.Action <Exception>)(ex =>
         {
             Debug.LogException(ex);
             this._withAnimalEnumerator = (IEnumerator)null;
         }), (System.Action)(() => this._withAnimalEnumerator = (IEnumerator)null)), (Component)this);
         break;
     }
 }
Esempio n. 2
0
        private static T InitializeAnimal(AnimalTypeEnum type)
        {
            T animalObject = null;

            switch (type)
            {
            case AnimalTypeEnum.Cow:
                animalObject = AnimalBase.AnimalFactory(type) as T;
                break;

            case AnimalTypeEnum.Dog:
                animalObject = AnimalBase.AnimalFactory(type) as T;
                break;

            case AnimalTypeEnum.Cat:
                animalObject = AnimalBase.AnimalFactory(type) as T;
                break;

            case AnimalTypeEnum.Pig:
                animalObject = AnimalBase.AnimalFactory(type) as T;
                break;

            case AnimalTypeEnum.Duck:
                animalObject = AnimalBase.AnimalFactory(type) as T;
                break;
            }

            return(animalObject);
        }
Esempio n. 3
0
        public static string RusType(this AnimalBase animal)
        {
            var type = animal.Type();

            switch (type)
            {
            case "Chicken":
                return("Курица");

            case "Cat":
                return("Кошка");

            case "Dog":
                return("Собака");

            case "Stork":
                return("Аист");

            case "Tiger":
                return("Тигр");

            case "Wolf":
                return("Волк");

            default:
                return(type);
            }
        }
Esempio n. 4
0
 protected override void OnAwake(PlayerActor player)
 {
     player.SetActiveOnEquipedItem(false);
     player.ChaControl.setAllLayerWeight(0.0f);
     this.isEnd         = false;
     this.isWait        = (Func <PlayerActor, bool>)null;
     this.isNextEnabled = false;
     if (this.disposable != null)
     {
         this.disposable.Clear();
     }
     this.disposable = new CompositeDisposable();
     if (Object.op_Equality((Object)(this.hasAnimal = player.Animal), (Object)null))
     {
         this.isEnd = true;
         this.ToErrorEnd(player);
     }
     else
     {
         this.animalName    = this.hasAnimal.Name;
         this.isCameraBlend = true;
         this.getPercent    = 30f;
         if (this.hasAnimal is WildGround)
         {
             this.getPercent = (this.hasAnimal as WildGround).GetPercent;
         }
         this.getAnimalFlag = (double)Random.Range(0.0f, 100f) <= (double)this.getPercent;
         if (this.getAnimalFlag && Singleton <Resources> .IsInstance() && Singleton <Manager.Map> .IsInstance())
         {
             List <StuffItem> itemList = Singleton <Manager.Map> .Instance.Player?.PlayerData?.ItemList;
             if (itemList != null)
             {
                 this.getIteminfo = this.hasAnimal.ItemInfo;
                 if (this.getIteminfo != null)
                 {
                     this.addItem = new StuffItem(this.getIteminfo.CategoryID, this.getIteminfo.ID, 1);
                     itemList.AddItem(this.addItem);
                 }
             }
         }
         if (Singleton <Manager.Map> .IsInstance())
         {
             List <StuffItem> itemList = Singleton <Manager.Map> .Instance.Player?.PlayerData?.ItemList;
             if (itemList != null && this.hasAnimal is WildGround)
             {
                 ItemIDKeyPair getItemId = (this.hasAnimal as WildGround).GetItemID;
                 itemList.RemoveItem(new StuffItem(getItemId.categoryID, getItemId.itemID, 1));
             }
         }
         MapUIContainer.SetCommandLabelAcception(CommandLabel.AcceptionState.None);
         if (this.hasAnimal.AnimalType == AnimalTypes.Cat || this.hasAnimal.AnimalType == AnimalTypes.Chicken)
         {
             this.Initialize(player);
         }
         else
         {
             this.ToErrorEnd(player);
         }
     }
 }
Esempio n. 5
0
    public Animal(AnimalBase pBase, int pLevel)
    {
        _base = pBase;
        level = pLevel;

        Init();
    }
        private void CheckAnimal()
        {
            List <AnimalBase> animalBaseList = ListPool <AnimalBase> .Get();

            foreach (AnimalBase targetAnimal in this.Agent.TargetAnimals)
            {
                CollisionState collisionState;
                if ((targetAnimal.AnimalType & this.targetAnimalType) != (AnimalTypes)0 && this.Agent.AnimalCollisionStateTable.TryGetValue(targetAnimal.InstanceID, out collisionState) && targetAnimal.IsWithAgentFree(this.Agent) && (collisionState == CollisionState.Enter || collisionState == CollisionState.Stay))
                {
                    animalBaseList.Add(targetAnimal);
                }
            }
            if (0 < animalBaseList.Count)
            {
                AnimalBase capturedInSight = this.GetCapturedInSight(this.Agent, animalBaseList);
                if (Object.op_Equality((Object)capturedInSight, (Object)null))
                {
                    ListPool <AnimalBase> .Release(animalBaseList);

                    return;
                }
                this.Agent.TargetInSightAnimal = capturedInSight;
            }
            ListPool <AnimalBase> .Release(animalBaseList);
        }
Esempio n. 7
0
        public void DifferentAnimalsMakeDifferentNoises()
        {
            AnimalBase dog = AnimalFactory.GetAnimal(1);
            AnimalBase cat = AnimalFactory.GetAnimal(2);

            Assert.AreNotEqual(cat.SongOfItsPeople(), dog.SongOfItsPeople());
        }
Esempio n. 8
0
 /// <summary>
 /// Copy constructor
 /// </summary>
 /// <param name="other"></param>
 protected AnimalBase(AnimalBase other)
 {
     Id           = other.Id;
     Name         = other.Name;
     Age          = other.Age;
     Gender       = other.Gender;
     FoodSchedule = other.FoodSchedule;
 }
        private AnimalBase GetCapturedInSight(AgentActor _agent, List <AnimalBase> _animals)
        {
            AnimalBase element = _animals.GetElement <AnimalBase>(Random.Range(0, _animals.Count));

            if (Object.op_Equality((Object)element, (Object)null))
            {
                return((AnimalBase)null);
            }
            return(this.IsCaptureInSight(_agent, element) ? element : (AnimalBase)null);
        }
Esempio n. 10
0
 public void Initialize(AnimalBase _animal)
 {
     this.Clear();
     this.Animal = _animal;
     if (Object.op_Equality((Object)this.Animal, (Object)null))
     {
         return;
     }
     this.TableSetting();
 }
        public virtual TaskStatus OnUpdate()
        {
            this.CheckAnimal();
            AnimalBase targetInSightAnimal = this.Agent.TargetInSightAnimal;

            if (Object.op_Equality((Object)targetInSightAnimal, (Object)null))
            {
                return((TaskStatus)1);
            }
            return((targetInSightAnimal.AnimalType & this.targetAnimalType) == (AnimalTypes)0 ? (TaskStatus)1 : (TaskStatus)2);
        }
Esempio n. 12
0
 private IEnumerator StartWithAnimalSequenceCoroutine(
     AnimalBase animal,
     int actorPoseID,
     int animalPoseID)
 {
     // ISSUE: object of a compiler-generated type is created
     return((IEnumerator) new Actor.\u003CStartWithAnimalSequenceCoroutine\u003Ec__Iterator1()
     {
         animal = animal,
         animalPoseID = animalPoseID,
         actorPoseID = actorPoseID,
         \u0024this = this
     });
 }
Esempio n. 13
0
 private void ReleaseAnimal()
 {
     if (!Object.op_Inequality((Object)this.animal, (Object)null))
     {
         return;
     }
     this.animal.SetImpossible(false, (Actor)this.Agent);
     if (Object.op_Equality((Object)this.Agent.TargetInSightAnimal, (Object)this.animal))
     {
         this.Agent.TargetInSightAnimal = (AnimalBase)null;
         this.animal.SetSearchTargetEnabled(true, false);
     }
     this.animal = (AnimalBase)null;
 }
        private bool IsCaptureInSight(AgentActor _agent, AnimalBase _target)
        {
            if (Object.op_Equality((Object)_target, (Object)null))
            {
                return(false);
            }
            Vector3 position1 = _agent.FovTargetPointTable.get_Item(Actor.FovBodyPart.Head).get_position();
            int     layer     = LayerMask.NameToLayer("Map");
            Vector3 position2 = _target.Position;
            Vector3 vector3   = Vector3.op_Subtraction(position1, position2);
            Ray     ray;

            ((Ray) ref ray).\u002Ector(position1, vector3);
            return(!Physics.Raycast(ray, ((Vector3) ref vector3).get_magnitude(), 1 << layer));
        }
Esempio n. 15
0
 private void Awake()
 {
     if (!Object.op_Implicit((Object)this._animal))
     {
         this._animal = (AnimalBase)((Component)this).GetComponent <AnimalBase>();
     }
     if (!Object.op_Implicit((Object)this._animal))
     {
         Object.Destroy((Object)this);
     }
     else
     {
         this.InstanceID     = this._animal.InstanceID;
         this.IsAnimalActive = true;
     }
 }
Esempio n. 16
0
        private ValueTuple <AIProject.SaveData.AnimalData, PetChicken> CreateChicken(
            AIProject.SaveData.Environment.ChickenInfo info)
        {
            ValueTuple <AIProject.SaveData.AnimalData, PetChicken> valueTuple;

            ((ValueTuple <AIProject.SaveData.AnimalData, PetChicken>) ref valueTuple).\u002Ector((AIProject.SaveData.AnimalData)null, (PetChicken)null);
            if (info == null || !Singleton <AnimalManager> .IsInstance() || Object.op_Equality((Object)this._currentFarmPoint, (Object)null))
            {
                return(valueTuple);
            }
            int        _animalTypeID = 1;
            AnimalBase animalBase    = Singleton <AnimalManager> .Instance.CreateBase(_animalTypeID, 1);

            IPetAnimal petAnimal = animalBase as IPetAnimal;

            if (Object.op_Equality((Object)animalBase, (Object)null))
            {
                return(valueTuple);
            }
            ((Component)animalBase).get_transform().SetParent(this._currentFarmPoint.AnimalRoot, true);
            AIProject.SaveData.AnimalData animalData = new AIProject.SaveData.AnimalData();
            animalData.AnimalID         = animalBase.AnimalID;
            animalData.RegisterID       = this._currentFarmPoint.RegisterID;
            animalData.AnimalType       = AnimalTypes.Chicken;
            animalData.AnimalTypeID     = _animalTypeID;
            animalData.InitAnimalTypeID = true;
            animalData.BreedingType     = BreedingTypes.Pet;
            animalData.Nickname         = info.name;
            ItemIDKeyPair itemId = animalBase.ItemID;

            animalData.ItemCategoryID = itemId.categoryID;
            animalData.ItemID         = itemId.itemID;
            if (petAnimal != null)
            {
                petAnimal.AnimalData = animalData;
                if (animalBase is PetChicken)
                {
                    (animalBase as PetChicken).Initialize(this._currentFarmPoint);
                }
            }
            valueTuple.Item1 = (__Null)animalData;
            valueTuple.Item2 = (__Null)(animalBase as PetChicken);
            return(valueTuple);
        }
Esempio n. 17
0
        public virtual TaskStatus OnUpdate()
        {
            AnimalBase targetInSightAnimal = this.Agent.TargetInSightAnimal;

            if (Object.op_Equality((Object)targetInSightAnimal, (Object)null))
            {
                return((TaskStatus)1);
            }
            if (!targetInSightAnimal.IsWithAgentFree(this.Agent))
            {
                return((TaskStatus)1);
            }
            AgentProfile.RangeParameter rangeSetting = Singleton <Resources> .Instance.AgentProfile.RangeSetting;
            if (!this.Agent.NavMeshAgent.get_pathPending())
            {
                this.SetDestination(targetInSightAnimal.Position);
            }
            return(!this.HasArrived() ? (TaskStatus)3 : (TaskStatus)2);
        }
Esempio n. 18
0
        public bool IsMatchAnimalWithActor(AnimalBase animal)
        {
            if (Object.op_Equality((Object)animal, (Object)null) || !animal.Active)
            {
                return(false);
            }
            switch (animal.CurrentState)
            {
            case AnimalState.WithPlayer:
                return(this is PlayerActor);

            case AnimalState.WithAgent:
                return(this is AgentActor);

            case AnimalState.WithMerchant:
                return(this is MerchantActor);

            default:
                return(false);
            }
        }
Esempio n. 19
0
        public void Should_Support_Inheritance_Of_Complex_Objects_Inside_Array()
        {
            var entity = new MyEntity();

            var animals = new AnimalBase[]
            {
                new Cat {
                    Friend = new Lion()
                },
                new Lion(),
                new Tiger()
            };

            entity.SetData("MyAnimals", animals, true);
            var animals2 = entity.GetData <AnimalBase[]>("MyAnimals", true);

            animals2.Length.ShouldBe(3);
            animals2[0].ShouldBeOfType <Cat>();
            animals2[0].As <Cat>().Friend.ShouldBeOfType <Lion>();
            animals2[1].ShouldBeOfType <Lion>();
            animals2[2].ShouldBeOfType <Tiger>();
        }
Esempio n. 20
0
 private void Start()
 {
     if (Object.op_Equality((Object)this._animal, (Object)null))
     {
         this._animal = (AnimalBase)((Component)this).GetComponent <AnimalBase>();
     }
     if (Object.op_Equality((Object)this._animal, (Object)null))
     {
         this._animal = (AnimalBase)((Component)this).GetComponentInChildren <AnimalBase>(true);
     }
     if (Object.op_Equality((Object)this._animal, (Object)null))
     {
         this._animal = (AnimalBase)((Component)this).GetComponentInParent <AnimalBase>();
     }
     if (Object.op_Equality((Object)this._animal, (Object)null))
     {
         Object.Destroy((Object)this);
     }
     else
     {
         this.StartLateUpdate();
     }
 }
Esempio n. 21
0
 public void CheckIfAllAnimalsAreDifferentFromEachOther(
     [Values(AnimalTypeEnum.Cat, AnimalTypeEnum.Cow, AnimalTypeEnum.Dog, AnimalTypeEnum.Duck, AnimalTypeEnum.Pig)
     ] AnimalTypeEnum firstAnimalTypeEnumAnimal,
     [Values(AnimalTypeEnum.Cat, AnimalTypeEnum.Cow, AnimalTypeEnum.Dog, AnimalTypeEnum.Duck, AnimalTypeEnum.Pig)
     ] AnimalTypeEnum secondAnimalTypeEnumAnimal)
 {
     if (firstAnimalTypeEnumAnimal == secondAnimalTypeEnumAnimal)
     {
         Assert.That(firstAnimalTypeEnumAnimal, Is.EqualTo(secondAnimalTypeEnumAnimal));
     }
     else
     {
         Assert.That(firstAnimalTypeEnumAnimal, Is.Not.EqualTo(secondAnimalTypeEnumAnimal));
         Assert.That(
             AnimalBase.AnimalFactory(firstAnimalTypeEnumAnimal).AnimalName,
             Is.Not.EqualTo(AnimalBase.AnimalFactory(secondAnimalTypeEnumAnimal).AnimalName));
         Assert.That(
             AnimalBase.AnimalFactory(firstAnimalTypeEnumAnimal).AnimalSound,
             Is.Not.EqualTo(AnimalBase.AnimalFactory(secondAnimalTypeEnumAnimal).AnimalSound));
         Assert.That(
             AnimalBase.AnimalFactory(firstAnimalTypeEnumAnimal).GetGetAnimalNameAndSound(),
             Is.Not.EqualTo(AnimalBase.AnimalFactory(secondAnimalTypeEnumAnimal).GetGetAnimalNameAndSound()));
     }
 }
Esempio n. 22
0
        public virtual void OnStart()
        {
            ((Task)this).OnStart();
            this.Agent.RuntimeDesire = Desire.Type.Animal;
            this.Agent.ChangeStaticNavMeshAgentAvoidance();
            this.animal = this.Agent.TargetInSightAnimal;
            if (Object.op_Equality((Object)this.animal, (Object)null))
            {
                return;
            }
            this.animal.SetSearchTargetEnabled(false, false);
            this.Agent.StateType    = AIProject.Definitions.State.Type.Immobility;
            this.animal.BackupState = this.animal.CurrentState;
            Dictionary <int, AnimalPlayState> source1;

            if (!Singleton <Manager.Resources> .Instance.AnimalTable.WithAgentAnimeTable.TryGetValue(this.animal.AnimalTypeID, out source1) || source1.IsNullOrEmpty <int, AnimalPlayState>())
            {
                return;
            }
            List <int> source2 = ListPool <int> .Get();

            source2.AddRange((IEnumerable <int>)source1.Keys);
            this.Agent.StartWithAnimalSequence(this.animal, source2.GetElement <int>(Random.Range(0, source2.Count)));
        }
Esempio n. 23
0
    void settingAnimal()
    {
        AnimalBase animal = new AnimalBase();

        for (int i = 0; i < GameManager.getInstance.loadMapData.animalType.Count; i++)
        {
            string path = "";
            switch (GameManager.getInstance.loadMapData.animalType[i])
            {
            case eAnimal.eDear:
                path = "A_000";
                break;

            case eAnimal.eDear2:
                path = "A_001";
                break;

            case eAnimal.eGiraffe:
                path = "A_002";
                break;

            case eAnimal.eGiraffe2:
                path = "A_003";
                break;

            case eAnimal.eRhinoceros:
                path = "A_004";
                break;

            case eAnimal.eRhinoceros2:
                path = "A_005";
                break;
            }
            animalList.Add(TableLocator.animalDataTable.Find(path));
        }
    }
Esempio n. 24
0
 private void PostAct(AnimalBase anAnimal)
 {
     World.Instance.UpdateState();
 }
        public virtual TaskStatus OnUpdate()
        {
            AnimalBase targetInSightAnimal = this.Agent.TargetInSightAnimal;

            return(Object.op_Inequality((Object)targetInSightAnimal, (Object)null) && (double)Vector3.Distance(this.Agent.Position, targetInSightAnimal.Position) <= (double)this.arrivedDistance ? (TaskStatus)2 : (TaskStatus)1);
        }
Esempio n. 26
0
 public void StartWithAnimalSequence(AnimalBase animal, int poseID)
 {
     this.StartWithAnimalSequence(animal, poseID, poseID);
 }
Esempio n. 27
0
 public void StartWithAnimalSequence(AnimalBase animal)
 {
     this.StartWithAnimalSequence(animal, 0, 0);
 }
Esempio n. 28
0
 //Метод можно было лучше реализовать
 public static string Type(this AnimalBase animal)
 {
     return(animal.GetType().Name);
 }
Esempio n. 29
0
 public static string InitializeCustomAnimal(string animalName, string animalSound)
 {
     return(AnimalBase.GetInternalAnimalNameAndSound(animalName, animalSound));
 }
Esempio n. 30
0
 public AnimalBehavior(AnimalBase animal, Action behavior, Func <bool> criterion, IAnimalBehavior next)
 {
     Behavior  = behavior;
     Criterion = criterion;
     Next      = next;
 }