public override void Reload()
 {
     if (MagazineCurrent >= MagazineCapacity)
     {
         return;
     }
     else if (ItemDataAmmo != null)
     {
         if (ItemDataAmmo.count == 0)
         {
             return;
         }
     }
     else if (ItemDataAmmo == null)
     {
     }
     Is_Reloading = true;
     WeaponAnimator.SetTrigger("Reload");
 }
Exemple #2
0
 public override void ExecuteAttack()
 {
     if (timeSinceAttack < 0)
     {
         //Set animation trigger
         WeaponAnimator.SetTrigger(Constants.ENEMY_FIRE_BOW);
         RangedWeapon weap = (RangedWeapon)weapon;
         //Instantiate projectile
         GameObject projectile = Instantiate(weap.projectile, transform.parent);
         projectile.transform.position = attackPos.position;
         Arrow   arrowC   = projectile.GetComponent <Arrow>();
         Vector2 heading  = PlayerManager.instance.transform.position - attackPos.position;
         float   distance = heading.magnitude;
         arrowC.direction = heading / distance;
         arrowC.weapon    = weap;
         arrowC.shooter   = gameObject;
         arrowC.damage    = (int)(weapon.damage * enemy.damageModifier);
         timeSinceAttack  = weapon.delay * enemy.attackSpeedModifier;
     }
 }
Exemple #3
0
    public override void ExecuteAttack()
    {
        if (timeSinceAttack <= 0)
        {
            WeaponAnimator.SetTrigger("Attack");

            //Delay hitscan by .5 seconds
            StartCoroutine(Util.ExecuteAfterTime(0.2f, () =>
            {
                //Collect things to hit on layer
                Collider2D[] charactersToDamage = Physics2D.OverlapCircleAll(attackPos.position, weapon.range * enemy.sizeModifier, layer);

                for (int i = 0; i < charactersToDamage.Length; i++)
                {
                    charactersToDamage[i].GetComponent <HitManager>().TakeDamage(weapon.damage, attackPos.position, weapon.knockback, false);
                }
            }));

            timeSinceAttack = weapon.delay * enemy.attackSpeedModifier;
        }
    }
        public override void FireUp()
        {
            if (DestinyEngineController.main.IsGamePaused)
            {
                return;
            }

            if (Is_Cooldown | MagazineCurrent <= 0 | Is_Reloading)
            {
                return;
            }

            Is_Cooldown = true;
            if (MagazineCurrent > 0)
            {
                MagazineCurrent -= 1;
            }

            WeaponAnimator.SetTrigger("Fire");

            SaveFlag();
            Impact();
            Recoil();
        }