示例#1
0
    void setState(BlenderState state, float delay = -1)
    {
        if (delay == -1)
        {
            switch (state)
            {
            case BlenderState.IDLE:
                if (_currentProduct != ItemTypes.UNKNOWN)
                {
                    _sprite.Stop();
                    Inventory.instance.addStuf(_currentProduct.ToString());
                    _currentProduct = ItemTypes.UNKNOWN;
                }

                resetToDefaults();
                indicator.Stop();
                indicator.gameObject.SetActive(false);
                break;

            case BlenderState.WORK_NORMAL:
                break;

            case BlenderState.WORK_DANGER:
                setState(BlenderState.BROCKEN, getAction("MAKE_ORANGE").actionTime);
                break;

            case BlenderState.BROCKEN:
                _sprite.Stop();

                brockenSprite.gameObject.SetActive(true);

                if (_currentProduct == ItemTypes.APPLE_JUCE)
                {
                    ContentManager.instance.configureObject(brockenSprite, settings.spriteAtlas, usettings.brockenAppleSprite);
                }
                else
                {
                    ContentManager.instance.configureObject(brockenSprite, settings.spriteAtlas, usettings.brockenOrangeSprite);
                }

                break;

            default:
                Logger.message(LogLevel.LOG_ERROR, "Unknown blender state - " + state.ToString());
                break;
            }

            _state = state;
        }
        else
        {
            _nextState = state;
            Invoke("onStateChanged", delay);
        }
    }
示例#2
0
    void updatePortionNum(int num)
    {
        if (_state == BlenderState.WORK_NORMAL)
        {
            setState(BlenderState.WORK_DANGER);
            indicator.Play(timerRedAnimation);
        }
        else
        {
            indicator.Stop();
            indicator.gameObject.SetActive(false);
            CancelInvoke();
            _sprite.Stop();
        }

        _currentPortionNum = num;
        _state             = BlenderState.IDLE;

        if (num == 2)
        {
            if (_currentProduct == ItemTypes.APPLE_JUCE)
            {
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionTwoAppleSprite);
            }
            else
            {
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionTwoOrangeSprite);
            }
        }
        else if (num == 1)
        {
            if (_currentProduct == ItemTypes.APPLE_JUCE)
            {
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionOneAppleSprite);
            }
            else
            {
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionOneOrangeSprite);
            }
        }
        else if (num == 0)
        {
            ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionZeroSprite);
        }
    }
示例#3
0
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);
        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        brockenSprite.gameObject.SetActive(false);

        _portionCapacity   = usettings.portionNum;
        _currentPortionNum = 0;

        _type  = ObjectType.BLENDER;
        _state = BlenderState.IDLE;
    }
示例#4
0
    IEnumerator ChangeAction(float waitTime)
    {
        yield return(new WaitForSeconds(waitTime));

        if (!GlobalGameState.IsNPCOnSiren)
        {
            CurrentBlenderState = (BlenderState)Random.Range(2, 4);             // inclusive | exclusive

            //Debug.Log ("Changed Action: " + CurrentBlenderState);

            switch (CurrentBlenderState)
            {
            case BlenderState.Walking:
                DoWalking();
                break;

            case BlenderState.Idle:
                DoResting();
                break;

            case BlenderState.Rotating:
                DoChangeRotation();
                break;

            /*
             *  case BlenderState.Eating:
             * DoEating ();
             * break;*/
            default:
                break;
            }

            if (CurrentBlenderState != BlenderState.Dead &&
                CurrentBlenderState != BlenderState.Eating)
            {
                float nextActionDue = Random.Range(1.5f, 4f);
                routine = ChangeAction(nextActionDue);
                StartCoroutine(routine);
            }
        }
    }
示例#5
0
    public void StartBlending()
    {
        // Getting the last ingredient in the blender. //
        Transform lastIngredient        = currentBlenderIngredients[currentBlenderIngredients.Count - 1];
        Colour    lastIngredientsColour = lastIngredient.GetComponent <Ingredient>().colour;

        Color newColour = colourManager.ConvertColour(lastIngredientsColour, 255);

        SetBlenderParticle(newColour);


        //blenderParticleMaterial.SetColor("_BaseColor", Color.green);


        currentBlenderState = BlenderState.BLENDING;
        SoundManager.SetSound(soundManager.blenderSource, soundManager.blendingSound, true);
        SoundManager.PlaySound(soundManager.blenderSource);


        // Activating the particles.
        blenderParticles.gameObject.SetActive(true);
    }
示例#6
0
    public void Blend(Blend type)
    {
        SoundManager.StopPlayingSound(soundManager.blenderSource);


        Debug.Log("Blender activated");
        for (int i = currentBlenderIngredients.Count - 1; i > -1; i--)
        {
            // Spawn a blended thingy in its place. //
            SpawnBlendedIngredient(currentBlenderIngredients[i], type);


            currentBlenderIngredients[i].gameObject.SetActive(false);
            currentBlenderIngredients.Remove(currentBlenderIngredients[i]);
        }

        currentBlenderState = BlenderState.JAR;
        ResetBlendProgress();

        // Hiding blender particles.
        blenderParticles.gameObject.SetActive(false);
    }
示例#7
0
 public void RemoveBlenderCover()
 {
     currentBlenderState = BlenderState.NO_JAR;
 }
示例#8
0
 public void AttachBlenderCover()
 {
     currentBlenderState = BlenderState.JAR;
 }
示例#9
0
    void updatePortionNum(int num)
    {
        if (_state == BlenderState.WORK_NORMAL)
        {
            setState(BlenderState.WORK_DANGER);
            indicator.Play(timerRedAnimation);
        }
        else
        {
            indicator.Stop();
            indicator.gameObject.SetActive(false);
            CancelInvoke();
            _sprite.Stop();
        }

        _currentPortionNum = num;
        _state = BlenderState.IDLE;

        if (num == 2)
        {
            if (_currentProduct == ItemTypes.APPLE_JUCE)
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionTwoAppleSprite);
            else
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionTwoOrangeSprite);
        }
        else if (num == 1)
        {

            if (_currentProduct == ItemTypes.APPLE_JUCE)
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionOneAppleSprite);
            else
                ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionOneOrangeSprite);
        }
        else if (num == 0)
        {
            ContentManager.instance.configureObject(_sprite, settings.spriteAtlas, usettings.potionZeroSprite);
        }
    }
示例#10
0
    void setState(BlenderState state, float delay=-1)
    {
        if (delay == -1)
        {
            switch(state)
            {
            case BlenderState.IDLE:
                if (_currentProduct != ItemTypes.UNKNOWN)
                {
                    _sprite.Stop();
                    Inventory.instance.addStuf(_currentProduct.ToString());
                    _currentProduct = ItemTypes.UNKNOWN;
                }

                resetToDefaults();
                indicator.Stop();
                indicator.gameObject.SetActive(false);
                break;

            case BlenderState.WORK_NORMAL:
                break;

            case BlenderState.WORK_DANGER:
                setState(BlenderState.BROCKEN, getAction("MAKE_ORANGE").actionTime);
                break;

            case BlenderState.BROCKEN:
                _sprite.Stop();

                brockenSprite.gameObject.SetActive(true);

                if (_currentProduct == ItemTypes.APPLE_JUCE)
                    ContentManager.instance.configureObject(brockenSprite, settings.spriteAtlas, usettings.brockenAppleSprite);
                else
                    ContentManager.instance.configureObject(brockenSprite, settings.spriteAtlas, usettings.brockenOrangeSprite);

                break;

            default:
                Logger.message(LogLevel.LOG_ERROR, "Unknown blender state - "+state.ToString());
                break;
            }

            _state = state;
        }
        else
        {
            _nextState = state;
            Invoke("onStateChanged", delay);
        }
    }
示例#11
0
    protected override void buildObject(int level)
    {
        base.buildObject(level);

        usettings = upgrades[level];

        indicator.gameObject.SetActive(false);
        indicator.gameObject.transform.Translate(usettings.indicatorOffset.x, usettings.indicatorOffset.y, 0);

        ContentManager.instance.configureObject(indicator, usettings.indicatorAtlasName, "");
        ContentManager.instance.precacheAnimation(indicator, usettings.indicatorAnimationAtlasName);

        brockenSprite.gameObject.SetActive(false);

        _portionCapacity = usettings.portionNum;
        _currentPortionNum = 0;

        _type = ObjectType.BLENDER;
        _state = BlenderState.IDLE;
    }