Exemple #1
0
        private void Update()
        {
            projectileTracer.AddPoint(transform.position);

            if (previousPosition == transform.position)
            {
                return;
            }

            Vector3 hitPosition;

            if (terrain.Linecast(previousPosition, transform.position, out hitPosition))
            {
                gameObject.SetActive(false);

                ProjectileInfluence influence = projectileInfluenceFactory.Create(transform.position, Consts.BOOM_RADIUS);
                influence.transform.localScale = Vector3.zero;

                influence.OnPeak
                .Subscribe(OnInnerInfluencePeak)
                .AddTo(influence);

                influence.OnEnd
                .Subscribe(OnInnerInfluenceEnd)
                .AddTo(influence);
            }

            previousPosition = transform.position;
        }
Exemple #2
0
        private void OnInnerInfluenceEnd(ProjectileInfluence projectileInfluence)
        {
            projectileInfluence.OnEnd.Dispose();

            Destroy(gameObject);

            OnInfluenceEnd.Execute(new InfluenceEventArgs(this, projectileInfluence));
        }
Exemple #3
0
        private void OnInnerInfluencePeak(ProjectileInfluence projectileInfluence)
        {
            projectileInfluence.OnPeak.Dispose();

            OnInfluencePeak.Execute(new InfluenceEventArgs(this, projectileInfluence));
        }