public bool HasNextStage() { switch (ArtifactTemplate.GetArtifactTemplate(Template).StageSelectionMode) { case "Random": return(visitedStages.Count < ArtifactTemplate.GetArtifactTemplate(Template).Stages); case "InOrder": default: return(CurrentStage < ArtifactTemplate.GetArtifactTemplate(Template).Stages); } }
public int GetNextStage() { switch (ArtifactTemplate.GetArtifactTemplate(Template).StageSelectionMode) { case "Random": List <int> possibleStages = new List <int>(); for (int s = 0; s < ArtifactTemplate.GetArtifactTemplate(Template).Stages; s++) { if (!visitedStages.Contains(s)) { possibleStages.Add(s); } } return(possibleStages[RandomHelper.GetHelper().GetGenerator().Next(0, possibleStages.Count)]); case "InOrder": default: return(CurrentStage++); } }