public bool AddAchievement(string AchievementId) { //Debug.Log("AddAchievement called"); AchievementData achievement = ScriptableObject.CreateInstance("AchievementData") as AchievementData; AchievementEntity achievementEntity = new AchievementEntity(achievement); achievementEntity.Data.hideFlags = HideFlags.None; achievementEntity.Data.Type = AchievementType.ZenArcher; achievementEntity.Data.OnlyMainCampaign = true; achievementEntity.Data.name = AchievementId.Substring(4); // removing "ACH_" achievementEntity.Data.SteamId = AchievementId; achievementEntity.Data.GogId = AchievementId; achievementEntity.Manager = AchievementManager; achievementEntity.Unlock(); AchievementLogicFactory.Create(achievementEntity).Activate(); AchievementManager.Append(achievementEntity); SteamAchievementsManager sam = SteamAchievementsManager.Instance; sam.Achievements = AchievementManager; SteamUserStats.SetAchievement(achievementEntity.Data.SteamId); Debug.Log($"{achievementEntity.Data.name} added to profile"); return(true); }
public AchievementView(AchievementEntity entity) { Id = entity.Id; UserId = entity.UserId; Achievement = entity.Achievement; AchievedDate = entity.AchievedDate; AchievedTeam = entity.AchievedTeam; }
public async Task <IActionResult> Post([FromBody] AddAchievementRequest request) { var achievement = new AchievementEntity { PartitionKey = "1", RowKey = request.Name, Category = request.Category, Description = request.Details, IsSecret = request.IsSecret }; await _repository.InsertOrMergeEntity(achievement); return(NoContent()); }
public async Task <bool> InsertAchievement(UserAchievementForm form) { var achievement = new AchievementEntity { Id = Guid.NewGuid(), UserId = form.UserId, Achievement = form.Achievement, AchievedDate = form.Date, AchievedTeam = form.TeamName }; return(await _achievementRepository.InsertAsync(new List <AchievementEntity> { achievement })); }
private static void Postfix(ref bool __result, AchievementEntity __instance) { //modLogger.Log("AchievementEntity.IsDisabled"); if (settings.toggleAllowAchievementsDuringModdedGame) { if (__instance.Data.OnlyMainCampaign && !Game.Instance.Player.Campaign.IsMainGameContent) { __result = true; return; } //modLogger.Log($"AchievementEntity.IsDisabled - {__result}"); BlueprintCampaign blueprintCampaign = __instance.Data.SpecificCampaign?.Get(); __result = !__instance.Data.OnlyMainCampaign && blueprintCampaign != null && Game.Instance.Player.Campaign != blueprintCampaign || ((UnityEngine.Object)__instance.Data.MinDifficulty != (UnityEngine.Object)null && Game.Instance.Player.MinDifficultyController.MinDifficulty.CompareTo(__instance.Data.MinDifficulty.Preset) < 0 || __instance.Data.MinCrusadeDifficulty > (KingdomDifficulty)(SettingsEntity <KingdomDifficulty>)SettingsRoot.Difficulty.KingdomDifficulty) || (__instance.Data.IronMan && !(bool)(SettingsEntity <bool>)SettingsRoot.Difficulty.OnlyOneSave); // || (Game.Instance.Player.ModsUser || OwlcatModificationsManager.Instance.IsAnyModActive)); //modLogger.Log($"AchievementEntity.IsDisabled - {__result}"); } }
public async Task <List <AchievementEntity> > AddSpecialAchievements(Participant player, LookupEntity ourChampion, SummonerInfoEntity summonerInfo, Guid seasonInfoId, Match riotMatch, MatchSubmissionView view, int currentGame) { var achievements = new List <AchievementEntity>(); var teamName = "N/a"; var currentTeamId = (await _teamPlayerRepository.GetBySummonerAndSeasonIdAsync(summonerInfo.Id, seasonInfoId))?.TeamRosterId; if (currentTeamId != null) { var playerTeam = await _teamRosterRepository.GetByTeamIdAsync(currentTeamId.Value); if (playerTeam.TeamName == view.HomeTeamName || playerTeam.TeamName == view.AwayTeamName) { teamName = playerTeam.TeamName; } } if (player.Stats.LargestMultiKill >= 5) { var achivement = new AchievementEntity { Id = Guid.NewGuid(), UserId = summonerInfo.UserId, AchievedDate = DateTime.Today, AchievedTeam = teamName, Achievement = $"Penta-kill on {ourChampion.Value} in game {currentGame}" }; achievements.Add(achivement); } var blueTeamPlayers = riotMatch.Participants.Where(x => x.TeamId == 100); var redTeamPlayers = riotMatch.Participants.Where(x => x.TeamId == 200); var blueTotalKills = blueTeamPlayers.Sum(y => y.Stats.Kills); var redTotalKills = redTeamPlayers.Sum(y => y.Stats.Kills); var isBlue = player.TeamId == 100; if (isBlue && redTotalKills == 0 || !isBlue && blueTotalKills == 0) { var blueTeam = riotMatch.Teams.First(x => x.TeamId == 100); var redTeam = riotMatch.Teams.First(x => x.TeamId == 200); if (blueTeam.DragonKills == 0 && blueTeam.BaronKills == 0 && blueTeam.TowerKills == 0 && !isBlue || redTeam.DragonKills == 0 && redTeam.BaronKills == 0 && redTeam.TowerKills == 0 && isBlue) { var achivement = new AchievementEntity { Id = Guid.NewGuid(), UserId = summonerInfo.UserId, AchievedDate = DateTime.Today, AchievedTeam = teamName, Achievement = $"Perfect Game on {ourChampion.Value} in game {currentGame}" }; achievements.Add(achivement); } } try { var oldAchievements = (await _achievementRepository.GetAchievementsForUserAsync(summonerInfo.UserId)).ToList(); var tempList = new List <AchievementEntity>(achievements); foreach (var newAchievement in tempList) { var match = oldAchievements.FirstOrDefault(x => x.Equals(newAchievement)); if (match != null) { achievements.Remove(newAchievement); } } } catch (Exception) { //ignore } return(achievements); }
internal void OnAchievementPopupScript(AchievementEntity item) { if (achievementPopup.gameObject.activeSelf) { achievementPopup.Close(); return; } if (!achievementPopup.gameObject.activeSelf && !GuiWindow.AnyTaskFor(achievementPopup)) { GuiWindow.Add(achievementPopup, new object[] { item }); IsOpenWindows = true; } }