/// 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); }
public virtual bool StartInteraction(DodoManager dodo) { if (dodosPresent.Count < occupationPlaces.Length) { dodosPresent.Add(dodo); occupyingDodos[dodo.machineOccupationId] = dodo; return(true); } return(false); }
/// 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); }
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); } }
// 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; } } }
/// 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); }
public override bool IsDodoLured(DodoManager dodo) { return(dodo.hunger > DodoManager.DODO_HUNGER && foodServed > dodosPresent.Count && base.IsDodoLured(dodo)); }
/// Dodo has created a new dodo! public override void FinishInteraction(DodoManager dodo) { dodo.readyToEgg = 0; spaceStationManager.AddDodo(this); }
public override bool IsDodoLured(DodoManager dodo) { return(dodo.readyToEgg >= 60.0f && base.IsDodoLured(dodo)); }
public virtual void CancelInteraction(DodoManager dodo) { dodosPresent.Remove(dodo); occupyingDodos[dodo.machineOccupationId] = null; }
public virtual bool IsDodoLured(DodoManager dodo) { return(dodosPresent.Count < occupationPlaces.Length); }
// 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>(); }
public override bool IsDodoLured(DodoManager dodo) { return(dodo.mealTimeAgo > 0 && base.IsDodoLured(dodo)); }
// 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>(); }