示例#1
0
        private void HandleEvent(ProjectileEvents e, Target target)
        {
            if (!IsActive)
            {
                return;
            }

            // Piercing
            if (e == ProjectileEvents.CollisionWithTarget || e == ProjectileEvents.CollisionWithOtherTargets)
            {
                _numberOfHits += 1;
                if (_numberOfHits > _projectile.MaxPiercingTargets.GetValue(_handler.Stacks))
                {
                    HandleEvent(ProjectileEvents.ReachedMaxPiercingTargets, target);
                }
            }

            if (_projectile.FireSubSpellCondition.HasFlag(e))
            {
                _handler.HandleProjectileFireEvent(target);
            }

            if (_projectile.DestroyCondition.HasFlag(e))
            {
                HandleDestroy();
                _handler.HandleProjectileDestroyEvent(target);
            }
        }
 private void Awake()
 {
     projectile_event = this;
 }