Exemplo n.º 1
0
 void FixedUpdate()
 {
     // resend to teh factory if the position goes beyonf boundary
     if ((m_directionMove > 0 && transform.position.x > 3.6f) || (m_directionMove < 0 && transform.position.x < -3.6f))// reached borders
     {
         gameObject.SetActive(false);
         SpaceInvaderAbstractFactory spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("BossFactory"); // accessomg boss factoy
         spaceInvaderFactory.RecycleBoss(this);
         m_invaderManger.RemoveBoss();
     }
 }
        public void DestroyBoss(Boss boss)
        {
            SpaceInvaderAbstractFactory spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("EffectsFactory");
            Effects bossExplodeEffect = spaceInvaderFactory.GetEffects(EffectsType.BossExplode);

            bossExplodeEffect.transform.position = boss.transform.position;
            bossExplodeEffect.gameObject.SetActive(true);
            bossExplodeEffect.DestroyAfterSomeTime(.15f);

            spaceInvaderFactory = SpaceInvaderFactoryProducer.GetFactory("BossFactory"); // accessomg boss factoy
            spaceInvaderFactory.RecycleBoss(boss);
            boss.gameObject.SetActive(false);
            m_audioSource.PlayOneShot(m_invaderExlodeClip);
            m_bossInvader = null;

            // score
            // for now, if the inviders move right it is 100, 50 left move not really a mystery :(
            int bossKillScore = m_invaderHorMovDirection > 0 ? 100 : 50;

            m_gameScoreSO.Value = m_gameScoreSO.Value + bossKillScore;
        }