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; }
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); } }
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(); } } }
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); }
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); } }
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); }
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); }
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]); } } }