// 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; } } } }
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); } }