Error: type could not be resolved because of a cycle.

Hi everyone,

I hope you can help me. I am having a problem with “type could not be resolved because of a cycle”.


Specifically it says:

“Definition of ‘LevelUpCheck(AvatarData, int)’ depends on ‘EndBattlePanel()’ whose type could not be resolved because of a cycle. Explicitly declare the type of either one to break the cycle.”


Explaination:

My thought process was that EndBattlePanel would be the master function and would act like a switch. So it should :

  • start off on avatar[0]
  • then run the Experience(0) function
  • then run the LevelUpCheck function
  • if avatar did level up, then it would show a popup with a ‘continue’ button.
  • When this is pressed, it will play the LevelUpCheck function again until avatar doesn’t gain any more levels and will then do the else statement.
  • When the else statement is run, the Avatar[0] should have a false value and so it would be become false in EndBattlePanel function and continue on with Avatar[1] and run all of the functions again until both Avatar[0] & Avatar[1] are false.

Code:

	function EndBattlePanel ()
	{				
		if(avatar[0].hasBattled == true)
		{							
			yield Experience(0);
		}		
		else if(avatar[1].hasBattled == true)
		{
			yield Experience(1);
		}
		else
		{
			scrollbar.SetActive(true);
			continueButton.SetActive(true);
		}		
	}
	
	function Experience (number : int)
	{
		var avatarSelected : AvatarData;
		avatarSelected 		= avatar[number];		

		ExperienceFormula();
		yield SlideExperienceBar();
		LevelUpCheck(avatarSelected, number);	
	}
	
	function LevelUpCheck (avatarSelected : AvatarData, number : int)
	{
		levelUpPopup.SetActive(false);
		
		if (avatarSelected.curExperience > avatarSelected.experienceMax)
		{
			LevelUpAvatar(avatarSelected);
			levelUpPopup.SetActive(true);			
		}
		else
		{
			avatar[number].hasBattled = false; 
			yield WaitForSeconds(0.5);	
			EndBattlePanel();			
		}	
	}

This has been answered here. Explicitly mention the return type of either one of the functions since they both depend on each other.