Beispiel #1
0
    private IEnumerator HitCorotinue()
    {
        WaitForFixedUpdate wait = new WaitForFixedUpdate();

        float timer = warningTime;

        while (timer > 0)
        {
            timer -= Time.fixedDeltaTime;

            yield return(wait);
        }

        timer         = damageTime;
        readyToDamage = true;
        while (timer > 0)
        {
            timer -= Time.fixedDeltaTime;

            yield return(wait);
        }
        readyToDamage = false;

        var         obj   = ObjectPool.GetObject(bullet, "SkillBullets");
        SkillBullet skill = obj.GetComponent <SkillBullet>();

        skill.Source = Source;
        skill.Target = Target;

        skill.Launch(transform.position, transform.right);

        ObjectPool.RecycleObject(this.gameObject);
    }
Beispiel #2
0
    private void CreateBarrage()
    {
        float deltaAngle;

        if (count > 1)
        {
            deltaAngle = angle / (count - 1);
        }
        else
        {
            deltaAngle = angle;
        }
        transform.Rotate(0, 0, -angle / 2);

        for (int i = 0; i < count; i++)
        {
            var         bullet = ObjectPool.GetObject(buckshot, "SkillBullets");
            SkillBullet skill  = bullet.GetComponent <SkillBullet>();
            skill.Source = Source;
            skill.Target = Target;

            skill.Launch(transform.position, transform.right);

            transform.Rotate(0, 0, deltaAngle);
        }
    }
    private IEnumerator ShootCorotinue()
    {
        WaitForFixedUpdate wait = new WaitForFixedUpdate();

        float timer;

        for (int i = 0; i < bullets.Length; i++)
        {
            transform.position = Source.transform.position;
            Vector2 direction = (Target.transform.position - transform.position).normalized;
            transform.right = direction;

            GameObject  prefab = NotionWorld.Worlds.ObjectPool.GetObject(bullets[i], "SkillBullets");
            SkillBullet bullet = prefab.GetComponent <SkillBullet>();
            bullet.Source = Source;
            bullet.Target = Target;

            timer = interval;
            while (timer > 0)
            {
                timer -= Time.fixedDeltaTime;
                yield return(wait);
            }
            bullet.Launch(transform.position, transform.right);
        }

        ObjectPool.RecycleObject(this.gameObject);
    }
Beispiel #4
0
    public override void Launch(Vector2 position, Vector2 direction)
    {
        transform.position = position;

        for (int i = 0; i < count; i++)
        {
            var         obj   = ObjectPool.GetObject(mortar, "SkillBullets");
            SkillBullet skill = obj.GetComponent <SkillBullet>();
            skill.Source = Source;
            skill.Target = Target;

            Vector2 pos = new Vector2(Random.Range(area.xMin, area.xMax), Random.Range(area.yMin, area.yMax));

            skill.Launch(pos, transform.right);
        }
    }
Beispiel #5
0
        private void Skill()
        {
            GameObject  prefab = NotionWorld.Worlds.ObjectPool.GetObject(skillBullet, "SkillBullets");
            SkillBullet bullet = prefab.GetComponent <SkillBullet>();

            bullet.Source = Owner.gameObject;
            bullet.Target = targetGameObject.Value;

            Vector2 position  = animatorModifier.Animator.transform.position;
            Vector2 direction = ((Vector2)targetGameObject.Value.transform.position - position);

            direction = direction.normalized;

            bullet.Launch(position, direction);
            coldDownTimer = bullet.coldDown;

            animatorModifier.TakeEffect();
        }
Beispiel #6
0
    private void CreateBarrage()
    {
        float deltaAngle = Random.Range(minDeltaAngle, maxDeltaAngle);

        transform.Rotate(0, 0, -deltaAngle * count / 2);

        for (int i = 0; i < count; i++)
        {
            var         bullet = ObjectPool.GetObject(buckshot, "SkillBullets");
            SkillBullet skill  = bullet.GetComponent <SkillBullet>();
            skill.Source = Source;
            skill.Target = Target;

            skill.Launch(transform.position, transform.right);

            transform.Rotate(0, 0, deltaAngle);
            deltaAngle = Random.Range(minDeltaAngle, maxDeltaAngle);
        }
    }