Пример #1
0
 /// Host a dodo that came eat for the given amount of time
 public override bool StartInteraction(DodoManager dodo)
 {
     if (dodo.hunger > DodoManager.DODO_HUNGER && foodServed > dodosPresent.Count)
     {
         return(base.StartInteraction(dodo));
     }
     return(false);
 }
Пример #2
0
 public virtual bool StartInteraction(DodoManager dodo)
 {
     if (dodosPresent.Count < occupationPlaces.Length)
     {
         dodosPresent.Add(dodo);
         occupyingDodos[dodo.machineOccupationId] = dodo;
         return(true);
     }
     return(false);
 }
Пример #3
0
    /// Bid farewell to a dodo that finished eating
    public override void FinishInteraction(DodoManager dodo)
    {
        dodo.hunger = 0;
        dodo.hungerAnimationProgress = 0;
        dodo.mealTimeAgo            += 0.01f;
        foodServed--;

        dodo.Animate("FedAnimation", DodoManager.AnimationPosition.TopRight);

        base.FinishInteraction(dodo);
    }
Пример #4
0
 void OnTriggerEnter2D(Collider2D collider)
 {
     if (collider.tag.Equals("Dodo"))
     {
         DodoManager dodoManager = collider.GetComponent <DodoManager>();
         dodoManager.PushInDirection(targetPoint.position - transform.position, force);
     }
     if (collider.GetComponent <Rigidbody2D>() != null)
     {
         Destroy(gameObject);
     }
 }
Пример #5
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        lureTimeout          = Time.time + LURE_TIMEOUT;
        occupationFinishTime = 0;
        dodoManager          = animator.GetComponent <DodoManager>();
        luringMachine        = dodoManager.luringMachine;
        Transform machineChild = luringMachine.transform.GetChild(0);

        if (machineChild != null)
        {
            int occupationCount = machineChild.childCount;
            if (occupationCount > 0)
            {
                int occupationNumber = Random.Range(0, occupationCount);
                int randomDirection = 0, initialNumber = occupationNumber;
                while (luringMachine.occupyingDodos[occupationNumber] != null)
                {
                    if (randomDirection == 0)
                    {
                        randomDirection = Random.Range(0, 1) * 2 - 1;
                    }
                    occupationNumber += randomDirection;
                    if (occupationNumber < 0)
                    {
                        occupationNumber = occupationCount - 1;
                    }
                    if (occupationNumber >= occupationCount)
                    {
                        occupationNumber = 0;
                    }
                    if (occupationNumber == initialNumber)
                    {
                        dodoManager.stateMachine.SetTrigger("delure");
                        return;
                    }
                }
                occupation = machineChild.GetChild(occupationNumber);
                dodoManager.machineOccupationId = occupationNumber;
            }
        }
    }
Пример #6
0
    /// Dodo is done and is leaving!
    public override void FinishInteraction(DodoManager dodo)
    {
        dodo.mealTimeAgo = 0;
        dodoniumAccumulated++;
        if (dodoniumAccumulated > maxDodoniumStorage)
        {
            dodoniumAccumulated = maxDodoniumStorage;
        }

        dodo.Animate("RelaxAnimation", DodoManager.AnimationPosition.TopRight);
        GameObject animation = Instantiate(Resources.Load <GameObject>("RelaxAnimation"));

        if (animation == null)
        {
            Debug.LogError("Could not find RelaxAnimation prefab in Resources folder!");
        }
        else
        {
            animation.transform.parent   = transform;
            animation.transform.position = dodo.transform.position + new Vector3(0.4f, 0.6f, 0);
        }

        dodosPresent.Remove(dodo);
    }
Пример #7
0
 public override bool IsDodoLured(DodoManager dodo)
 {
     return(dodo.hunger > DodoManager.DODO_HUNGER && foodServed > dodosPresent.Count && base.IsDodoLured(dodo));
 }
Пример #8
0
 /// Dodo has created a new dodo!
 public override void FinishInteraction(DodoManager dodo)
 {
     dodo.readyToEgg = 0;
     spaceStationManager.AddDodo(this);
 }
Пример #9
0
 public override bool IsDodoLured(DodoManager dodo)
 {
     return(dodo.readyToEgg >= 60.0f && base.IsDodoLured(dodo));
 }
Пример #10
0
 public virtual void CancelInteraction(DodoManager dodo)
 {
     dodosPresent.Remove(dodo);
     occupyingDodos[dodo.machineOccupationId] = null;
 }
Пример #11
0
 public virtual bool IsDodoLured(DodoManager dodo)
 {
     return(dodosPresent.Count < occupationPlaces.Length);
 }
Пример #12
0
 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     nextMoveTime = Time.time;
     moveTime     = Time.time;
     dodoManager  = animator.GetComponent <DodoManager>();
 }
Пример #13
0
 public override bool IsDodoLured(DodoManager dodo)
 {
     return(dodo.mealTimeAgo > 0 && base.IsDodoLured(dodo));
 }
Пример #14
0
 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     dodoManager = animator.GetComponent <DodoManager>();
 }