Exemplo n.º 1
0
        public override void Tick()
        {
            model.LookAt(model.TargetObject, 1);

            // Debug.Log("Hail Attack Execute", gameObject);
            if (model.TargetObject == null)
            {
                Exit();
            }

            randRotation.eulerAngles = new Vector3(Random.Range(-(randomizedAngle * 2), -randomizedAngle), 0, Random.Range(-(randomizedAngle * 2), -randomizedAngle));
            randOffset = new Vector3(Random.Range(-0.5f, 0.5f), 1, Random.Range(-0.5f, 0.5f));

            if (energy.Amount > 0 && delayTick >= delay)
            {
                GameObject spawn = Instantiate(syphonProjectile, transform.position + randOffset, randRotation);
                if (spawn.GetComponent <ProjectileSyphon>() != null)
                {
                    spawn.GetComponent <ProjectileSyphon>().parentObject = model.gameObject;
                    spawn.GetComponent <ProjectileSyphon>().target       = model.TargetObject.transform;
                }

                energy.Amount -= energyCost;
                delayTick      = 0;
            }
            else
            {
                delayTick++;
            }

            if (energy.Amount < 0)
            {
                Exit();
            }
        }
Exemplo n.º 2
0
        public override void Tick()
        {
            model.LookAt(model.TargetObject, 1);

            // Debug.Log("Hail Attack Execute", gameObject);
            if (model.TargetObject == null)
            {
                Exit();
                return;
            }

            randOffset = new Vector3(Random.Range(-0.5f, 0.5f), 1, Random.Range(-0.5f, 0.5f));

            Vector3 lookPos = (transform.position + randOffset) - model.transform.position;

            lookPos.y    = 0;
            randRotation = Quaternion.LookRotation(lookPos);

            if (energy.Amount > 0 && delayTick >= delay)
            {
                GameObject spawn = Instantiate(hailProjectile, transform.position + randOffset, Quaternion.identity);

                spawn.transform.rotation = Quaternion.Slerp(spawn.transform.rotation, randRotation, 1);
                spawn.transform.rotation = Quaternion.Inverse(spawn.transform.rotation);
                spawn.transform.LookAt(spawn.transform.position + spawn.transform.forward + (Vector3.up * 1.5f));

                spawn.GetComponent <ProjectileChase>().parentObject = model.gameObject;
                spawn.GetComponent <ProjectileChase>().target       = model.TargetObject.transform;

                energy.Amount -= energyCost;
                delayTick      = 0;
            }
            else
            {
                delayTick++;
            }

            if (energy.Amount < 0)
            {
                Exit();
            }
        }
Exemplo n.º 3
0
        public override void Tick()
        {
            if (spawnedSpiritBomb == null)
            {
                base.Exit();
                return;
            }
            model.LookAt(model.TargetObject, 1);

            // Debug.Log("Attack Execute", gameObject);

            if (energy.Amount > 0 && delayTick >= delay)
            {
                spawnedSpiritBomb.GetComponent <Projectile_SpiritBomb>().Power(energyCost);
                energy.Amount -= energyCost;
                delayTick      = 0;
            }
            else
            {
                delayTick++;
            }
        }