예제 #1
0
    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;
        }
    }
예제 #2
0
 public ShooterItem(Sprite spr, ProjectileShooterData data, bool staff)
     : base(spr)
 {
     weaponData = data;
     isStaff    = staff;
 }