virtual public void Eat(GameObject o) { if (!o) { LoseTarget("no obj"); return; } NumberInfo ni = o.GetComponent <NumberInfo>(); if (!ni) { LoseTarget("no ni"); return; } if (ni.usedThisFrame) { LoseTarget("ni used"); return; } ni.usedThisFrame = true; ni.NotifyDestroyer(this.gameObject); // let numberinfo know who is eating it. Fraction result = Fraction.Add(this.fraction, ni.fraction); if (result.numerator == 0) { Debug.Log("Result of animal " + this.fraction + " and ate:" + ni.fraction + " was zero!"); foreach (IDestroyedByPlayer dp in gameObject.GetComponents(typeof(IDestroyedByPlayer))) { dp.DestroyedByPlayer(); } } base.Eat(ni); // Sprite icon = ni.GetComponent<UserEditableObject>().icon; // justAteFX.transform.parent = transform; if (AnimalIsFrogType()) { float p = Random.Range(0.75f, 1.1f); AudioManager.inst.PlayMunch(transform.position, 1, p); // frogs have a quieter munch } else { AudioManager.inst.PlaySheepMunch(transform.position); } LoseTarget("ate"); }