Exemplo n.º 1
0
        // Animation Event
        void Hit()
        {
            //1
            float damage = CalculateDamage();

            if (target == null)
            {
                return;
            }
            if (isBlockingAndInAngle())
            {
                if (target.gameObject.tag == "Player")
                {
                    StartCoroutine(_BlockHitReact());
                }
            }
            Stamina stamina = this.GetComponent <Stamina>();

            if (stamina != null)
            {
                stamina.GainStamina(currentWeaponConfig.GetStaminaGain());
            }
            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }
            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
            }
            else
            {
                target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Animation Event called from the animation
        /// </summary>
        void Hit()
        {
            if (m_target == null)
            {
                return;
            }

            float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (m_currentWeapon.value != null)
            {
                m_currentWeapon.value.OnHit();
            }

            if (m_currentWeaponConfig.HasProjectile)
            {
                // Fire projectile
                m_currentWeaponConfig.LaunchProjectile(leftHandTransform, rightHandTransform, m_target, gameObject, damage);
            }
            else
            {
                // Take damage at point of impact
                m_target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 3
0
        // Animation Event
        void Hit()
        {
            if (target == null)
            {
                return;
            }

            float     damage          = GetComponent <BaseStats>().GetStat(Stat.Damage);
            BaseStats targetBaseStats = target.GetComponent <BaseStats>();

            if (targetBaseStats != null)
            {
                float defence = targetBaseStats.GetStat(Stat.Defence);
                damage /= 1 + defence / damage;
            }

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }

            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
            }
            else
            {
                target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 4
0
        //** Animation Events
        void Hit()
        {
            if (target == null)
            {
                return;
            }

            float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }


            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
            }
            else
            {
                // *superseded by Lesson 146 -> target.TakeDamage(gameObject, currentWeapon.GetDamage());
                target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 5
0
        void Hit()
        {
            if (target == null || target.show_current_health <= 0)
            {
                return;
            }

            // calculate damage
            int doDamage = GetComponent <BaseStats>().GetStats(StatEnum.Damage);

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }

            if (currentWeaponConfig.HasProjectile())
            {
                print("launched projectile at target: " + target.gameObject.name);

                currentWeaponConfig.LaunchProjectile(leftHand, rightHand, target, this.gameObject, doDamage);
            }
            else
            {
                print("hitting " + target.gameObject.name);
                target.TakeDamage(doDamage, this.gameObject);
            }
        }
Exemplo n.º 6
0
        //Animation Event
        void Hit()
        {
            if (target == null)
            {
                return;
            }

            float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }
            else
            {
                print("no current Weapon");
            }

            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
            }
            else
            {
                target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 7
0
        // Animation Event
        private void Hit()
        {
            Health targetToHit = GetTargetToHit();
            float  damage      = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (currentWeaponConfig.HasProjectile() && GetComponent <ActionScheduler>().GetCurrentAction() is Fighter) // Make Movement interrupt launching projectiles
            {
                currentWeaponConfig.LaunchProjectile(rightHand, leftHand, targetToHit, this.gameObject, damage);
            }

            Energy energyComponent = GetComponent <Energy>();

            if (energyComponent != null)
            {
                energyComponent.StopConsumingEnergy();
            }

            if (targetToHit == null)
            {
                return;
            }

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit(targetToHit);
            }
            if (!currentWeaponConfig.HasProjectile())
            {
                targetToHit.TakeDamage(this.gameObject, damage);
            }
        }
Exemplo n.º 8
0
        //Animation event. Called in animator not code
        void Hit()
        {
            if (target == null)
            {
                return;
            }

            float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            //If weapon is a bow or projectile...

            //Make sure you have a weapon you can hold.. ex this dont need to run for fireball
            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }

            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
            }
            else
            {
                //No not projectile...
                target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 9
0
 void Shoot()
 {
     if (currentTarget != null)
     {
         float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);
         equippedWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, currentTarget, gameObject, damage);
     }
 }
Exemplo n.º 10
0
 public void Shoot()
 {
     if (!currentWeaponConfig.hasProjectile())
     {
         return;
     }
     currentWeapon.value.OnAttack();
     currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, character, baseStat.GetStat(Stat.Damage), shootDirection);
 }
Exemplo n.º 11
0
        public void Hit()
        {
            if (target == null)
            {
                return;
            }
            var damage = GetComponent <BaseStats>().GetStat(Stat.BonusDamage);

            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(target, leftHandTransform, rightHandTransfom, damage);
            }
            else if (target)
            {
                onHit?.Invoke();
                target.TakeDamage(damage);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Handles the shoot event from an animation
        /// </summary>
        void Shoot()
        {
            //If we have lost the target then just return.  Can happen when canceling an attack prior to hit event.
            if (m_Target == null)
            {
                return;
            }

            //Check if weapon has projectile
            if (m_currentWeaponConfig.HasProjectile())
            {
                m_currentWeaponConfig.LaunchProjectile(gameObject, m_WeaponRightHandTransform, m_WeaponLeftHandTransform, m_Target);
            }
            //If no projectile then default to hit method.
            else
            {
                Hit();
            }
        }
Exemplo n.º 13
0
        //Animation event
        void Hit()
        {
            if (target == null)
            {
                return;
            }
            float damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }
            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(leftHandTransform, rightHandTransform, target.transform, gameObject, damage);
            }
            else
            {
                target.GetComponent <Health>().TakeDmg(damage, gameObject);
            }
        }
Exemplo n.º 14
0
        public void Hit()
        {
            if (target)
            {
                float damage = baseStats.GetStat(Stat.Damage);

                if (currentWeapon.value)
                {
                    currentWeapon.value.OnHit();
                }

                if (currentWeaponConfig.HasProjectile())
                {
                    currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, gameObject, damage);
                }
                else
                {
                    target.TakeDamage(gameObject, damage);
                }
            }
        }
Exemplo n.º 15
0
        // Animation Event
        private void Hit()
        {
            if (target == null)
            {
                return;
            }

            if (currentWeapon.value != null)
            {
                currentWeapon.value.OnHit();
            }

            float calculatedDamage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (currentWeaponConfig.HasProjectile())
            {
                currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, target, this.gameObject, calculatedDamage);
            }
            else
            {
                target.TakeDamage(this.gameObject, calculatedDamage);
            }
        }
Exemplo n.º 16
0
        // Animation Trigger
        private void Hit()
        {
            if (m_Target != null)
            {
                if (m_CurrentWeapon.Value != null)
                {
                    m_CurrentWeapon.Value.OnHit(m_Target);
                }

                float damage = m_BaseStats.GetStat(Stat.Damage);
                if (m_CurrentWeaponConfig.HasProjectile())
                {
                    m_CurrentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, m_Target, gameObject,
                                                           damage, UpdateTargetUi);
                }
                else
                {
                    m_Target.TakeDamage(gameObject, damage);
                }
            }

            UpdateTargetUi?.Invoke();
        }
Exemplo n.º 17
0
        private void Hit()
        {
            if (Target == null)
            {
                return;
            }

            var damage = GetComponent <BaseStats>().GetStat(Stat.Damage);

            if (_currentWeapon.value != null)
            {
                _currentWeapon.value.OnHit();
            }

            if (_currentWeaponConfig.HasProjectile())
            {
                _currentWeaponConfig.LaunchProjectile(rightHandTransform, leftHandTransform, Target, gameObject, damage);
            }
            else
            {
                Target.TakeDamage(gameObject, damage);
            }
        }
Exemplo n.º 18
0
 // Animation Event
 void Shoot()
 {
     currentWeaponConfig.LaunchProjectile(gameObject, target, rightHandTransform, leftHandTransform, GetComponent <BaseStats>().GetStat(Stats.Stats.Damage));
     RunWeaponOnHit();
 }