// State logics

        void WindUpLogic(MetaData.ObjectMetaData reciever)
        {
            if (!isChanneling)
            {
                if (windupTime == 0 && channelTime == 0)
                {
                    isWinding = false;
                    // skip channel step in order to save us from a bit of input lag.
                    WindUp(reciever);
                    Channel(reciever);
                    Trigger(reciever);
                }
                else
                {
                    if (windup > 0)
                    {
                        windup -= Time.deltaTime;
                        WindUp(reciever);
                        sender.AbilityReady(false);
                    }
                    else
                    {
                        isWinding    = false;
                        isChanneling = true;
                        channel      = channelTime;
                    }
                }
            }
        }
Beispiel #2
0
    private void CheckInput()
    {
        if (beenPressed)
        {
            if (Input.GetButtonUp(axis))
            {
                ability.OnFireExit(abilityInput, GetTarget());
                beenPressed = false;
            }
        }

        if (!ability.OnCooldown())
        {
            GetComponent <Image>().color = new Color(GetComponent <Image>().color.r, GetComponent <Image>().color.g, GetComponent <Image>().color.b, 1);
            if (Input.GetButtonDown(axis))
            {
                beenPressed = true;
                if (sender.AbilityReady())
                {
                    ability.OnFireEnter(abilityInput, GetTarget());
                }
            }

            if (Input.GetButton(axis))
            {
                ability.OnFireStay(abilityInput, GetTarget());
            }
        }
        else
        {
            GetComponent <Image>().color = new Color(GetComponent <Image>().color.r, GetComponent <Image>().color.g, GetComponent <Image>().color.b, .5f);
        }
    }