protected override IEnumerator AttackRoutine(Animations state) { InventoryManager inventory = movement.CurrentController.GetComponent <InventoryManager>(); shooterData = isArcher ? inventory.equippedBow.weaponData : inventory.equippedStaff.weaponData; animator.Play(state.ToString()); weapon.transform.parent.localRotation = Quaternion.Euler(0f, 0f, getAngle(state)); weapon.gameObject.SetActive(true); movement.enabled = false; yield return(new WaitForSeconds(weapon.releaseTime)); weapon.SpawnProjectile().instigator = gameObject; yield return(new WaitForSeconds(weapon.attackDuration - weapon.releaseTime)); weapon.gameObject.SetActive(false); movement.enabled = true; currentState = returnToState; if (queuedAction.HasValue) { PlayAnimation(queuedAction.Value); queuedAction = null; } }
public ShooterItem(Sprite spr, ProjectileShooterData data, bool staff) : base(spr) { weaponData = data; isStaff = staff; }