コード例 #1
0
    void GenerateRandomObject(int level = Constant.LEVEL_1)
    {
        FoodController.FoodType foodType    = DelegateManager.GetRandomFoodType();
        FoodController          fController = DelegateManager.GetFood(foodType);

        fController.IsUsed = true;

        PetIconController.PetType petType      = DelegateManager.GetRandomPetType(level);
        PetIconController         piController = DelegateManager.GetPetIcon(level, petType);

        piController.IsUsed = true;

        BaseObject controller = GetObjectInPool();

        controller.ActivateBaseObject(true);
        controller.LinkFoodAndPetIcon(ref fController, ref piController);
        controller.ActivateFoodAndPetIcon(true);
        //controller.FDController = fController;
        //controller.PIController = piController;
        controller.UpdateObjectState(BaseObject.ObjectState.CanMoved);
        m_ListObjects.Add(controller);

        //Update position in here now + update last object reference
        Vector3 newPos = new Vector3(m_LastObject.GetTransformation().position.x + m_Offset, m_PosY, 0);

        controller.UpdatePositionInWorld(newPos);
        m_LastObject = controller;
    }
コード例 #2
0
    void HandleMergedObjects()
    {
        if (m_SelectedObjects.Count >= 2)
        {
            RemoveMergedObjectsFromMatrix();

            int level = m_SelectedObjects[0].GetLevel();
            /*BaseObject.ObjectType*/
            PetIconController.PetType type     = m_SelectedObjects[0].GetPetObjectType();
            FoodController.FoodType   foodType = m_SelectedObjects[0].GetFoodType();

            DelegateManager.ShouldUpdatePetExperience(m_SelectedObjects.Count - 1, type, foodType, level, ref m_AnimatedObject, m_SelectedObjects[0]);
        }
        else
        {
            m_SelectedObjects[0].SetChecked(false);
        }
    }
コード例 #3
0
    void ContinueToMerge(bool shouldContinue)
    {
        if (shouldContinue)
        {
            int level = m_SelectedObjects[0].GetLevel();
            //BaseObject.ObjectType type = m_SelectedObjects[0].GetObjectType();
            FoodController.FoodType   foodType = m_SelectedObjects[0].FDController.CurrentFoodType;
            PetIconController.PetType petType  = m_SelectedObjects[0].PIController.CurrentPetType;

            if (level >= DelegateManager.GetMaxLevel())
            {
                //ClearBaseObjectsFromList();
                return;
            }

            if (level + 1 <= Constant.LEVEL_MAX)
            {
                //New level object
                BaseObject newobj = DelegateManager.GetRequiredBaseObject(level + 1, petType, foodType);

                //raise the event for the finished object coordinate with the quest
                //DelegateManager.UpdateCompleteQuest (newobj.GetLevel(), newobj.GetObjectType());

                int       row    = m_SelectedObjects[0].GetRow();
                int       column = m_SelectedObjects[0].GetColumn();
                Transform trans  = m_SelectedObjects[0].GetTransformation();
                float     x      = trans.position.x;
                float     y      = trans.position.y;
                Vector3   pos    = new Vector3(x, y, 0);
                newobj.UpdatePositionInMatrix(row, column);
                newobj.UpdatePositionInWorld(pos);
                newobj.UpdateObjectState(BaseObject.ObjectState.Frozen);
                m_Array[row, column] = newobj;

                ClearBaseObjectsFromList();

                HandleNewObject(newobj);
            }
            else
            {
                ClearBaseObjectsFromList();
            }
        }
    }
コード例 #4
0
    BaseObject GetRequiredBaseOjbect(int level, PetIconController.PetType petType, FoodController.FoodType foodType)
    {
        FoodController fController = DelegateManager.GetFood(foodType);

        fController.IsUsed = true;

        PetIconController piController = DelegateManager.GetPetIcon(level, petType);

        piController.IsUsed = true;

        BaseObject obj = GetObjectInPool();

        obj.ActivateBaseObject(true);
        obj.LinkFoodAndPetIcon(ref fController, ref piController);
        obj.ActivateFoodAndPetIcon(true);
        //obj.FDController = fController;
        //obj.PIController = piController;

        return(obj);
    }
コード例 #5
0
    void CreateListObjects(int level = Constant.LEVEL_1)
    {
        for (int i = 0; i < Constant.NUMBER_OBJECTS; ++i)
        {
            FoodController.FoodType foodType    = DelegateManager.GetRandomFoodType();
            FoodController          fController = DelegateManager.GetFood(foodType);
            fController.IsUsed = true;

            PetIconController.PetType petType      = DelegateManager.GetRandomPetType(level);
            PetIconController         piController = DelegateManager.GetPetIcon(level, petType);
            piController.IsUsed = true;

            BaseObject controller = GetObjectInPool();
            //controller.FDController = fController;
            //controller.PIController = piController;
            controller.ActivateBaseObject(true);
            controller.LinkFoodAndPetIcon(ref fController, ref piController);
            controller.ActivateFoodAndPetIcon(true);
            m_ListObjects.Add(controller);
        }
    }
コード例 #6
0
ファイル: PetObject.cs プロジェクト: duongxuanlong/examples
    void ShouldUpdatePetExperience(int exp, PetIconController.PetType type, FoodController.FoodType foodType, int level, ref BaseObject animatedObj, BaseObject sample)
    {
        //if (m_PetStat.m_IsDead)
        //    return;

        bool shouldContinue = false;

        if (m_PetStat.m_PetType == type && m_PetStat.m_FoodType == foodType)
        {
            if (m_PetStat.m_CurrentLevel == level)
            {
                if (!m_PetStat.m_IsDead)
                {
                    //int combo = DelegateManager.GetCombo();
                    //m_PetStat.m_PregressingLevel += (exp * combo);
                    //RefreshTime();

                    m_Factor = exp;

                    m_IsActivePet = true;
                    animatedObj   = sample;

                    //animatedObj.UpdateObjectState(BaseObject.ObjectState.None);
                    animatedObj.SetFoodAndPetIconColor(true);
                    animatedObj.SetTarget(m_CachedTransform.transform.position);
                    animatedObj.UpdateObjectState(BaseObject.ObjectState.MoveWithoutTouch);
                    //StartCoroutine(animatedObj.RunToTarget(m_CachedTransform.position, true, exp));
                    animatedObj.SetUpForwardAnimation(m_CachedTransform.position, true);
                }
            }
            else if (level <= m_PetStat.m_CurrentLevel - 1)
            {
                shouldContinue = true;
            }
        }

        DelegateManager.ShouldContinueToMerge(shouldContinue);
    }
コード例 #7
0
    PetIconController GetPetIcon(int level, PetIconController.PetType type)
    {
        List <PetIconController> icons = null;
        PetIconController        icon  = null;

        if (level == 1)
        {
            icons = m_PetIconLevel01[type];
        }
        else if (level == 2)
        {
            icons = m_PetIconLevel02[type];
        }

        foreach (var i in icons)
        {
            if (!i.IsUsed)
            {
                icon = i;
                break;
            }
        }

        if (icon == null)
        {
            GameObject sample = icons[0].gameObject;
            GameObject obj    = Instantiate(sample) as GameObject;
            obj.SetActive(false);
            obj.transform.SetParent(m_CachedTransform);
            icon = obj.GetComponent <PetIconController>();
            icons.Add(icon);
        }

        icon.IsUsed = true;
        return(icon);
    }
コード例 #8
0
    void CheckRelevant(BaseObject obj)
    {
        int row    = obj.GetRow();
        int column = obj.GetColumn();
        int level  = obj.GetLevel();

        PetIconController.PetType petType  = obj.GetPetObjectType();
        FoodController.FoodType   foodType = obj.GetFoodType();

        //check up
        if ((column - 1) >= 0)
        {
            if (m_Array[row, column - 1] != null &&
                !m_Array[row, column - 1].Haschecked() &&
                m_Array[row, column - 1].GetPetObjectType() == petType &&
                m_Array[row, column - 1].GetFoodType() == foodType &&
                m_Array[row, column - 1].GetLevel() == level)
            {
                m_Array[row, column - 1].SetChecked(true);
                m_SelectedObjects.Add(m_Array[row, column - 1]);
                CheckRelevant(m_Array[row, column - 1]);
            }
        }

        //check down
        if ((column + 1) < Constant.COLUMN)
        {
            if (m_Array[row, column + 1] != null &&
                !m_Array[row, column + 1].Haschecked() &&
                m_Array[row, column + 1].GetPetObjectType() == petType &&
                m_Array[row, column + 1].GetFoodType() == foodType &&
                m_Array[row, column + 1].GetLevel() == level)
            {
                m_Array[row, column + 1].SetChecked(true);
                m_SelectedObjects.Add(m_Array[row, column + 1]);
                CheckRelevant(m_Array[row, column + 1]);
            }
        }

        //check right
        if ((row + 1) < Constant.ROW)
        {
            if (m_Array[row + 1, column] != null &&
                !m_Array[row + 1, column].Haschecked() &&
                m_Array[row + 1, column].GetPetObjectType() == petType &&
                m_Array[row + 1, column].GetFoodType() == foodType &&
                m_Array[row + 1, column].GetLevel() == level)
            {
                m_Array[row + 1, column].SetChecked(true);
                m_SelectedObjects.Add(m_Array[row + 1, column]);
                CheckRelevant(m_Array[row + 1, column]);
            }
        }

        //check left
        if ((row - 1) >= 0)
        {
            if (m_Array[row - 1, column] != null &&
                !m_Array[row - 1, column].Haschecked() &&
                m_Array[row - 1, column].GetPetObjectType() == petType &&
                m_Array[row - 1, column].GetFoodType() == foodType &&
                m_Array[row - 1, column].GetLevel() == level)
            {
                m_Array[row - 1, column].SetChecked(true);
                m_SelectedObjects.Add(m_Array[row - 1, column]);
                CheckRelevant(m_Array[row - 1, column]);
            }
        }
    }