} //Stock of product

    //Handle objects interactions w/ Workshop
    //Return wether the object is taken from tavernkeeper
    public override bool use(GameObject userObject)
    {
        if (userObject != null)
        {
            // Debug.Log(userObject.tag);
            //TODO : Gérer Grabable qui ne sont pas des mugs ?
            if (userObject.tag == "Grabable" && currentMug is null) //Try to stock Mug into workshop
            {
                Mug mug = userObject.GetComponent <Mug>();
                if (mug != null && mug.content is null && !mug.dirty && Stock > 0) //Mug clean & empty + remaining stock in workshop
                {
                    Debug.Log(userObject.name + " stocked in " + gameObject.name);
                    mug.take();
                    currentMug = userObject;

                    if (UIPrepTimer != null) //Display UI prep timer
                    {
                        prepTimer = 0.0f;
                        UIPrepTimer.SetValue(prepTimer / prepTime);
                        UIPrepTimer.DisplayIcon(product_sprite);
                        UIPrepTimer.gameObject.SetActive(true);
                    }

                    return(true); //Object taken
                }
                else
                {
                    Debug.Log(userObject.name + " cannot be filled with " + product_name + " -stock:" + Stock);
                }
            }
            else if (userObject.tag == "Player" && prepTimer < prepTime && currentMug != null) //Prepare currentMug
            {
                continueUse(userObject);
            }
            else if (userObject.tag == "Player" && prepTimer >= prepTime) //Give tavernkeeper currentMug if finished preparation
            {
                Tavernkeeper_controller player = userObject.GetComponent <Tavernkeeper_controller>();
                Mug mug = currentMug.GetComponent <Mug>();
                if (player != null && mug != null)
                {
                    Debug.Log(gameObject.name + " give " + currentMug.name + " filled with " + product_name + " to " + userObject.name);
                    //Fill mug
                    mug.fill(new Consumable(product_name, product_value, product_sprite));
                    Stock--;
                    UIPrepTimer.gameObject.SetActive(false); //Turn off UI prep timer

                    //Give mug
                    player.grab(currentMug);
                    currentMug = null;
                }
            }
        }
Example #2
0
    //TODO : Trigger falling animation on tavernkeeper
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player")
        {
            player           = other.GetComponent <Tavernkeeper_controller>();
            player.mvt_speed = player.mvt_speed / mvtSlow; //Slow movement speed

            if (Random.Range(0.0f, 99.9f) < effectChance)
            {
                Debug.Log("Woops");
                player.emptyHands();
            }
        }
    }
Example #3
0
 //Handle continuous interaction w/ Workshop
 protected void continueUse(GameObject userObject)
 {
     Debug.Log(gameObject.name + " still used by " + userObject.name);
     if (interactionCd < 0.01f) //No interaction CD => Try to set it up
     {
         Tavernkeeper_controller player = userObject.GetComponent <Tavernkeeper_controller>();
         if (player != null)
         {
             interactionCd = player.action_cd * (1.0f + interactionSmoothing); //=action_cd+ interactionSmoothing(%) action_cd (for smooth continued interaction)
         }
         else
         {
             Debug.LogWarning(userObject.name + " cannot have a continuous interaction on " + gameObject.name);
         }
     }
     playerInteracting = true;          //Set interaction indicator
     cdTimer           = interactionCd; //Reset Interaction CD
 }
    List <GameObject> stock = new List <GameObject>(); //List of mug in workshop

    //Handle objects interactions w/ Workshop
    //Return wether the object is taken from tavernkeeper
    public override bool use(GameObject userObject)
    {
        if (userObject != null)
        {
            //TODO : Gérer grabable autre que Mug
            if (userObject.tag == "Grabable")
            {
                //Stock mug
                Mug mug = userObject.GetComponent <Mug>();
                if (mug != null)
                {
                    Debug.Log(userObject.name + " stocked in " + gameObject.name);
                    mug.take();
                    stock.Add(userObject);

                    return(true); //Object taken
                }
            }
            else if (userObject.tag == "Player" && prepTimer < prepTime && currentMug != null) //Prepare currentMug
            {
                continueUse(userObject);
            }
            else if (userObject.tag == "Player" && prepTimer >= prepTime && currentMug != null) //Give tavernkeeper currentMug if cleaned
            {
                Tavernkeeper_controller player = userObject.GetComponent <Tavernkeeper_controller>();
                Mug mug = currentMug.GetComponent <Mug>();
                if (player != null && mug != null)
                {
                    // Debug.Log(gameObject.name+" give "+currentMug.name+" to "+userObject.name);
                    //Clean mug
                    mug.dirty = false;
                    //Give mug
                    player.grab(currentMug);
                    currentMug = null;

                    UIPrepTimer.gameObject.SetActive(false); //Turn off UI prep timer
                }
            }
        }
        return(false);
    }
Example #5
0
    bool gameRunning = true; //Wehter the game is running (for clean-up purpose)

    //Handle objects interactions w/ obstacle
    //Return wether the object is taken from tavernkeeper
    public bool use(GameObject userObject)
    {
        //Handle continuous interaction w/ tavernkeeper
        if (userObject.tag == "Player")
        {
            if (stopTimer < stopTime) //Continue to stop fight
            {
                Debug.Log(gameObject.name + " still used by " + userObject.name);
                if (interactionCd < 0.01f)                                      //No interaction CD ?
                {
                    user_renderer = userObject.GetComponent <SpriteRenderer>(); //Renderer for visual effects

                    //Reset interaction CD
                    Tavernkeeper_controller player = userObject.GetComponent <Tavernkeeper_controller>();
                    if (player != null)
                    {
                        interactionCd = player.action_cd * (1.0f + interactionSmoothing); //=action_cd+ interactionSmoothing(%) action_cd (for smooth continued interaction)
                    }
                    else
                    {
                        Debug.LogWarning(userObject.name + " cannot have a continuous interaction on " + gameObject.name);
                    }
                }
                playerInteracting = true;          //Set interaction indicator
                cdTimer           = interactionCd; //Reset Interaction CD

                //Visual effect (user disappear)
                if (user_renderer != null)
                {
                    user_renderer.color = Color.clear;
                }
            }
            else //Fight stopped
            {
                Destroy(gameObject);
            }
        }
        return(false); //No object taken
    }