void TryToUseObject(GameObject animal) { if (ObjectInHand != null) { AnimalStatistics stats = animal.GetComponent <AnimalStatistics>(); HeldObject obj = ObjectInHand.GetComponent <HeldObject>(); if (!obj.IsCarryingUnits()) { return; } float food = 0; float water = 0; switch (obj.GetTypeOfObject()) { case TypeOfObject.ResourceCollector: stats.RetrieveResourceFromAnimal(); break; case TypeOfObject.Bucket: water = (obj.IsCarryingUnits() ? obj.GetNumUnitsHeld() : 0); ConsumedPerpetualObject(); break; case TypeOfObject.Hay: food = obj.GetNumUnitsHeld(); ConsumedOneTimeUseObject(); break; } stats.GiveFoodAndWater(food, water); } }
void CollectResource(GameObject obj) { ResourceSource source = obj.GetComponent <ResourceSource>(); switch (CurrentState) { case PlayerState.EmptyHand: if (source.GetTypeOfSource() == TypeOfSource.Feed) { GameObject held = source.GetHeldObject(); if (held == null) { break; } held.GetComponent <HeldObject>().SetNumUnitsHeld(source.UnitsTakenFromSource()); PickupObject(held); } break; case PlayerState.HoldingObject: if (source.GetTypeOfSource() == TypeOfSource.Water) { HeldObject held = ObjectInHand.GetComponent <HeldObject>(); if (held.GetTypeOfObject() != TypeOfObject.Bucket || held.IsCarryingUnits()) { break; } held.SetNumUnitsHeld(source.UnitsTakenFromSource()); held.ChangeObjectState(); FindObjectOfType <AudioManager>().Play("wellSFX"); } break; } }