public ChapterViewModel ChapterOfStage(StageViewModel stage) { var chapters = App.ViewModel.Chapters; foreach (var chapter in chapters) if (chapter.Stages.Contains(stage)) return chapter; return null; }
public bool ChapterIsUnlocked(StageViewModel stageView) { var chapter = ChapterOfStage(stageView); if (chapter == null) return false; foreach (var stage in chapter.Stages) { if (stage.IsLocked == false) { foreach (var s in chapter.Stages) s.IsChapterLocked = false; return true; } } return false; }
public int IncrementTimesPlayed(StageViewModel stage) { var guid = stage.StageId; var key = "Played_" + guid; var times = 1; if (IsolatedStorageSettings.ApplicationSettings.TryGetValue(key, out times)) IsolatedStorageSettings.ApplicationSettings[key] = ++times; else { times = 1; IsolatedStorageSettings.ApplicationSettings.Add(key, times); } return times; }
private void InitializeStageViewModel() { string chapterName = string.Empty, stageName = string.Empty; var parameters = NavigationContext.QueryString; if (!parameters.ContainsKey("StageId")) return; var stageId = Guid.Parse(parameters["StageId"]); foreach (var chapter in App.ViewModel.Chapters) { StageViewModel svm; if ((svm = chapter.Stages.FirstOrDefault(s => s.StageId == stageId)) == null) continue; _stage = svm; chapterName = chapter.LocalizedName; stageName = LocalizedResources.Stage(chapter.StageNumber(svm)); break; } var chapterStageNameText = chapterName + " , " + stageName; WinChapterStageName.Text = chapterStageNameText; LoseChapterStageName.Text = chapterStageNameText; }
private void InitializeStageViewModel() { var parameters = NavigationContext.QueryString; if (!parameters.ContainsKey("StageId")) return; var stageId = Guid.Parse(parameters["StageId"]); foreach (var chapter in App.ViewModel.Chapters) { StageViewModel svm; if ((svm = chapter.Stages.FirstOrDefault(s => s.StageId == stageId)) == null) continue; _stage = svm; break; } }
public int StageNumber(StageViewModel stage) { return Stages.IndexOf(stage) + 1; }
public void MarkWon(StageViewModel stage) { var guid = stage.StageId; if (_finishedStages.Contains(guid)) return; _finishedStages.Add(guid); IsolatedStorageSettings.ApplicationSettings[FinishedStageIdsKey] = _finishedStages; var nextStage = App.ViewModel.NextStage(stage.StageId); // no more stage to unlock for the last stage if (nextStage == null) return; // no need to unlock twice if (nextStage.IsLocked == false) return; var timesPlayed = GetTimesPlayed(stage); Utils.SendEvent(stage.Name, "First win", Utils.StageFirstWin(timesPlayed), 0); nextStage.IsLocked = false; var nextChapter = ChapterOfStage(nextStage); var chapter = ChapterOfStage(stage); if (chapter != nextChapter) { nextChapter.IsLocked = false; var totalTimesPlayed = 0; foreach (var stageInChapter in chapter.Stages) { totalTimesPlayed += GetTimesPlayed(stageInChapter); } Utils.SendEvent("Times played to win chapter", chapter.Name, Utils.ChapterTimesPlayed(totalTimesPlayed), 0); } }
public void MarkPlayed(StageViewModel stage) { var timesPlayed = IncrementTimesPlayed(stage); var timesPlayedString = Utils.TimesPlayedRange(timesPlayed); Utils.SendEvent(stage.Name, "Times played", timesPlayedString, 0); }
private int GetTimesPlayed(StageViewModel stage) { var guid = stage.StageId; var key = "Played_" + guid; var times = 0; if (IsolatedStorageSettings.ApplicationSettings.TryGetValue(key, out times)) return times; return 0; }
public bool StageIsUnlocked(StageViewModel stageView) { if(_finishedStages == null) GetUnlockedStageIds(); if (stageView.Prerequisites == Guid.Empty) return true; if (_finishedStages.Contains(stageView.Prerequisites)) return true; return false; }
private void CreateXML() { var fileNames = new List<string> { "Animal01", "Animal02", "Animal03", "Animal04", "Animal05", "Animal06", "Animal07", "Animal08", "Animal09", "Animal10", "Animal11", "Animal12", "Animal13", "Animal14", "Animal15", "Animal16", "Animal17", "Animal18", "Animal19", "Animal20", "Animal21", "Animal22", "Animal23", "Animal24", "Animal25", "Animal26", "Animal27", "Animal28", "Animal29", "Animal30", "Animal31", "Animal32", "Animal33", "Animal34", "Animal35", "Animal36", "Animal37", "Animal38", "Animal39", "Animal40", "Animal41", "Animal42", "Animal43", "Animal44", "Animal45", "Animal46", "Animal47", "Animal48", "Animal49", "Animal50", "Animal51", "Animal52" }; var cl = new List<ChapterViewModel>(); var lastStageId = Guid.Empty; const int stagesPerChapter = 6; ChapterViewModel currentChapter = null; for (var i = 0; i < fileNames.Count; i++) { if (i % stagesPerChapter == 0) { currentChapter = new ChapterViewModel { Name = "Chapter " + i, Stages = new List<StageViewModel>() }; cl.Add(currentChapter); } if (currentChapter != null) { var stage = new StageViewModel { Name = fileNames[i], GameFile = string.Format("https://photohunt.blob.core.windows.net/animal/{0}.zip", fileNames[i]), StageId = Guid.NewGuid(), Thumbnail = string.Format("https://photohunt.blob.core.windows.net/animal/thumbnails/{0}.jpg", fileNames[i]), GameEffect = Effect.None, Prerequisites = lastStageId }; currentChapter.Stages.Add(stage); lastStageId = stage.StageId; } } var xmlSerializer = new XmlSerializer(typeof(List<ChapterViewModel>)); var textWriter = new StringWriter(); xmlSerializer.Serialize(textWriter, cl); var result = textWriter.ToString(); }
private void CreateSampleData() { var fileNames = new List<string> { "Animal01", "Animal02", "Animal03", "Animal04", "Animal05", "Animal06", "Animal07", "Animal08", "Animal09", "Animal10", "Animal11", "Animal12", "Animal13", "Animal14", "Animal15", "Animal16", "Rio01", "Rio02", "Rio03", "Rio04", "Rio05", "Rio06", "Rio07", "Rio08", "Rio09" }; var cl = new List<ChapterViewModel>(); var lastStageId = Guid.Empty; const int stagesPerChapter = 6; ChapterViewModel currentChapter = null; for (var i = 0; i < fileNames.Count; i++) { if (i%stagesPerChapter == 0) { currentChapter = new ChapterViewModel {Name = "Chapter " + i, Stages = new List<StageViewModel>()}; cl.Add(currentChapter); } if (currentChapter != null) { var stage = new StageViewModel { Name = fileNames[i], GameFile = string.Format("https://appusage.blob.core.windows.net/photohuntinfinity/{0}.zip", fileNames[i]), StageId = Guid.NewGuid(), Thumbnail = "https://appusage.blob.core.windows.net/photohuntav1/Intro%20Video%201_icon.jpg", GameEffect = Effect.None, Prerequisites = lastStageId }; currentChapter.Stages.Add(stage); lastStageId = stage.StageId; } } var xmlSerializer = new XmlSerializer(typeof(List<ChapterViewModel>)); var textWriter = new StringWriter(); xmlSerializer.Serialize(textWriter, cl); var result = textWriter.ToString(); }