Beispiel #1
0
    //Use object event
    public void UseObject()
    {
        if (holdObject != null && (!bInActivity))
        {
            //Debug.Log("Animal Character Use " + holdObject.objectType.ToString());
            AFood food = holdObject as AFood;

            //If it is food and eatable
            if (food && food.eatable)
            {
                currentActivityCoolDown = activityCoolDown;
                this.bInActivity        = true;
                food.Eat(this);
            }
        }
    }
Beispiel #2
0
    void Update()
    {
        fruitGeneratingTimeRemain -= Time.deltaTime;
        if (fruitGeneratingTimeRemain < 0f)
        {
            if (fruitCount <= maxFruitCount)
            {
                //Generate fruit
                GameObject fruit = Instantiate(fruitPrefab, new Vector3(0, 0, 0), Quaternion.identity);
                AFood      aFood = fruit.GetComponent <APickupObject>() as AFood;
                aFood.MakeStatic();
                aFood.occupied = true;

                fruit.transform.parent = this.transform;
                Vector3 boxSize = GetComponent <BoxCollider>().size;

                fruit.transform.localPosition = new Vector3(Random.Range(-boxSize.x / 4, boxSize.x / 4f),
                                                            Random.Range(boxSize.y / 3, boxSize.y), Random.Range(-boxSize.z / 4, boxSize.z / 4f));

                fruitCount++;
            }
            fruitGeneratingTimeRemain = fruitGeneratingTime;
        }
    }
Beispiel #3
0
    public override void Interact(AnimalCharacter animalCharacter)
    {
        //Set Activity
        animalCharacter.currentActivity = EActivity.Cook;
        //NEED COOK ANIMATION !!!!!!!!!!
        animalCharacter.animator.SetInteger("animation", 5);

        animalCharacter.StopMove();

        //Action
        //Debug.Log("ACampfire: Cook");
        StartCoroutine(Cook());
        IEnumerator Cook()
        {
            if (animalCharacter.holdObject != null)
            {
                AFood food = animalCharacter.holdObject as AFood;
                if (food && food.cookable)
                {
                    Debug.Log("ACampfire Cook:" + food.objectType.ToString());
                    yield return(new WaitForSeconds(food.cookTime));

                    //After cook
                    food.cookable  = false;
                    food.fullGain += 0.3f;

                    //Change material
                    //Color foodColor = food.gameObject.GetComponent<Renderer>().material.color;
                    //food.gameObject.GetComponent<Renderer>().material.color =
                    //    new Color(foodColor.r / 2f, foodColor.g / 2f, foodColor.b / 2, foodColor.a);
                }
            }

            animalCharacter.SetIdle();
        }
    }
Beispiel #4
0
 public void Initialize(PlayerAttribute <APlayer> player, AFood <TModuleType> food)
 {
     this.food   = food;
     this.player = player;
 }