Example #1
0
    // Use this for initialization
    void Start()
    {
        m_rb2d     = GetComponent <Rigidbody2D>();
        m_animator = GetComponent <Animator>();

        if (m_rb2d == null || m_animator == null)
        {
            Debug.LogError("Components not set!");
            return;
        }

        // получем контроллеры игроков, они нам потребуются для определения подбора
        GameManager gmanager = GameManager.GetInstance();

        if (gmanager.GameMode == GameManager.GAME_MODE.SINGLE)
        {
            m_playerControllers.Add(gmanager.GetPlayer());
        }
        else if (gmanager.GameMode == GameManager.GAME_MODE.DUEL)
        {
            m_playerControllers.Add(gmanager.GetPlayers(PLAYER.PL1));
            m_playerControllers.Add(gmanager.GetPlayers(PLAYER.PL2));
        }

        m_state = BONUS_STATE.READY;
    }
Example #2
0
    /**********************************************************************************/
    // проверяем подбор объекта
    //
    /**********************************************************************************/
    protected virtual void CheckForPicking()
    {
        m_chekingRateCounter -= Time.deltaTime;
        if (m_chekingRateCounter <= 0.0f)
        {
            m_chekingRateCounter += m_chekingRate;

            // производим проверку подбора
            foreach (PlayerController plCtr in m_playerControllers)
            {
                m_position = GetLocalPosition();
                Point playerPosition = plCtr.GetGlobalPosition();
                if (playerPosition.IsSamePoint(m_position))
                {
                    plCtr.ApplyBonus(BonusType);
                    m_state = BONUS_STATE.TAKEN;

                    // если бонус был сброшен с орбиты
                    if (BonusSource == BONUS_SOURCE.ALIEN)
                    {
                        // оповещаем DropManager о том, что бонус был подобран
                        DropManager.GetInstance().BonusWasTaked((Base.GO_TYPE)BonusType);
                    }

                    // включаем анимацию взятия бонуса и выходим
                    m_animator.SetBool("Burn", true);

                    if (m_productionBase != null)
                    {
                        m_productionBase.ReleaseProduction(0);
                    }

                    return;
                }
            }
        }
    }
Example #3
0
 /**********************************************************************************/
 // обновляем статус объекта
 //
 /**********************************************************************************/
 public void ResetBonus()
 {
     m_position = GetLocalPosition();
     m_state    = BONUS_STATE.READY;
     gameObject.SetActive(true);
 }