Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public AchievementView(AchievementEntity entity)
 {
     Id           = entity.Id;
     UserId       = entity.UserId;
     Achievement  = entity.Achievement;
     AchievedDate = entity.AchievedDate;
     AchievedTeam = entity.AchievedTeam;
 }
Esempio n. 3
0
        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
            }));
        }
Esempio n. 5
0
 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}");
     }
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
    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;
        }
    }