예제 #1
0
    private void StageClear()
    {
        if (transform.position == _endx)
        {
            if (!bossAlive)
            {
                AudioSource audioLevel = gameMaganer.GetComponent <AudioSource>();
                audioLevel.Stop();
                mini = Instantiate(_miniboss, new Vector3(5.83f, 0.47f, 0.1f), Quaternion.identity);

                AudioSource minibossAudio = mini.GetComponent <AudioSource>();
                minibossAudio.Play();
                miniboss  = mini.GetComponent <MiniBoss>();
                bossAlive = true;
                if (miniboss == null)
                {
                    boss = mini.GetComponent <Boss>();
                }
            }
            else
            {
                if ((miniboss != null) && (miniboss.bossLife <= 0))
                {
                    miniboss._BossDead();
                    bossAlive = false;
                }

                if ((boss != null) && (boss.bossLife <= 0))
                {
                    boss._BossDead();
                    bossAlive = false;
                }
            }
        }
    }
예제 #2
0
 public MiniBossPunch(MiniBoss myself, float hm)
 {
     character          = (MiniBoss)myself;
     characterBody      = myself.GetComponent <Rigidbody>();
     meleeAttack        = myself.basicAttack.gameObject;
     hitbox             = meleeAttack.GetComponent <Collider>();
     horizontalMovement = hm;
 }
예제 #3
0
    public List <Enemy> getEnemies(int floor)
    {
        List <Enemy> enemies = new List <Enemy>();

        if (floor == 0)
        {
            enemies.Add(TutorialEnemy.Create());
        }
        else if (floor == 15)
        {
            enemies.Add(MiniBoss.Create(16));
            enemies.Add(MiniBoss.Create(25));
            enemies.Add(MiniBoss.Create(36));
        }
        else if (floor == 30)
        {
            enemies.Add(MiniBoss.Create(26));
            enemies.Add(MiniBoss.Create(27));
            enemies.Add(MiniBoss.Create(28));
        }
        else if (floor == 45)
        {
            enemies.Add(MiniBoss.Create(11));
            enemies.Add(MiniBoss.Create(13));
        }
        else if (floor == 46)
        {
            enemies.Add(MiniBoss.Create(17));
            enemies.Add(MiniBoss.Create(19));
        }
        else if (floor == 47)
        {
            enemies.Add(MiniBoss.Create(64));
            enemies.Add(MiniBoss.Create(81));
        }
        else if (floor == 48)
        {
            enemies.Add(MiniBoss.Create(89));
            enemies.Add(MiniBoss.Create(97));
        }
        else if (floor == 49)
        {
            enemies.Add(MiniBoss.Create(3));
            enemies.Add(MiniBoss.Create(6));
            enemies.Add(MiniBoss.Create(9));
        }
        else if (floor == 50)
        {
            enemies.Add(FinalBoss.Create());
        }
        else
        {
            addNormalEnemies(floor, ref enemies);
        }
        return(enemies);
    }
예제 #4
0
        protected override double GetHealthIncreaseFor(JudgementResult result)
        {
            if (result.IsHit)
            {
                // TODO: handle hearts
                return(0);
            }

            return(result.HitObject switch
            {
                Sawblade _ => healthForPoints(sawblade_points),
                Minion _ when collidesWith(result.HitObject) => healthForPoints(minion_points),
                Orb _ when collidesWith(result.HitObject) => healthForPoints(orb_points),
                MiniBoss _ => healthForPoints(miniboss_points),
                _ => 0
            });
예제 #5
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player")
        {
            Player player = other.GetComponent <Player>();

            if (player != null)
            {
                player.Damage();
            }
            Instantiate(_explosion, transform.position, Quaternion.identity);
            Destroy(this.gameObject);
        }
        else if (other.tag == "Laser")
        {
            if (other.transform.parent != null)
            {
                Destroy(other.transform.parent.gameObject);
            }
            Destroy(other.gameObject);
            Instantiate(_explosion, transform.position, Quaternion.identity);
            _uimanager.UpdateScore();
            Destroy(this.gameObject);
        }

        else if (other.tag == "Enemy")
        {
            Instantiate(_explosion, transform.position, Quaternion.identity);

            if (other.gameObject.name.StartsWith("Mini-Boss_0"))
            {
                miniboss           = other.gameObject.GetComponent <MiniBoss>();
                miniboss.bossLife -= 5;
            }
            else if (other.gameObject.name.StartsWith("Boss"))
            {
                boss = other.gameObject.GetComponent <Boss>();
                --boss.bossLife;
            }
            else
            {
                Destroy(other.gameObject);
            }

            Destroy(this.gameObject);
        }
    }
예제 #6
0
    // Update is called once per frame
    void Update()
    {
        GameObject miniBossGameObject = GameObject.Find("Mini-Boss_0(Clone)");

        if (miniBossGameObject != null)
        {
            miniBoss = miniBossGameObject.GetComponent <MiniBoss>();
            if (miniBoss != null && !miniBoss.isAlive)
            {
                Instantiate(_explosion, transform.position, Quaternion.identity);
                _uimanager.UpdateScore();
                Destroy(this.gameObject);
            }
        }

        _Movement();
    }
예제 #7
0
    // Checks block position within boundaries or not.
    void CheckBounds()
    {
        // Position higher than 60 units, don't collide.
        if (transform.position.y > 14)
        {
            BoxCol.enabled = false;
        }

        // Position lower than 60 units. Allow collisions.
        if (transform.position.y < 14)
        {
            BoxCol.enabled = true;
        }

        // Block falls below MinYPos, destroy it.
        if (transform.position.y < MinYPos)
        {
            Destroy(gameObject);
            //gameObject.SetActive (false);
            return;
        }

        // Boss part check for out of bounds and destroy if so.
        if (isBossPart == true)
        {
            if (GotDetached == true)
            {
                if (miniBoss != null)
                {
                    miniBoss = null;
                }

                if (transform.position.y > BoundaryY.y)
                {
                    Destroy(gameObject);
                    //gameObject.SetActive (false);
                    return;
                }
            }
        }
    }
예제 #8
0
 void Start()
 {
     minibossScript = (MiniBoss)miniboss.GetComponent(typeof(MiniBoss));
 }
예제 #9
0
 public MiniBossIdle(MiniBoss myself)
 {
     character = myself;
 }
예제 #10
0
 public MiniBossJump(Enemy myself)
 {
     character     = (MiniBoss)myself;
     characterBody = myself.GetComponent <Rigidbody>();
 }
예제 #11
0
 public MiniBossSlam(MiniBoss myself)
 {
     character     = (MiniBoss)myself;
     characterBody = myself.GetComponent <Rigidbody>();
     meleeAttack   = myself.slamHitbox;
 }
예제 #12
0
 public MiniBossChase(Enemy myself)
 {
     character = (MiniBoss)myself;
 }