Ejemplo n.º 1
0
        public async Task CallAchievementUnlockEventAsync(IAchievement achievement, IDiscordUser user, IDiscordTextChannel channel)
        {
            DogStatsd.Counter("achievements.gained", 1);

            if (achievement as AchievementAchievement != null)
            {
                return;
            }

            long id = user.Id.ToDbLong();

            using (var context = new MikiContext())
            {
                int achievementCount = await context.Achievements
                                       .Where(q => q.UserId == id)
                                       .CountAsync();

                AchievementPacket p = new AchievementPacket()
                {
                    discordUser    = user,
                    discordChannel = channel,
                    achievement    = achievement,
                    count          = achievementCount
                };

                await OnAchievementUnlocked?.Invoke(p);
            }
        }
Ejemplo n.º 2
0
        private void OnRequestAchievementsCompleted(AGSRequestAchievementsResponse response)
        {
            if (loadAchievementDescriptionsCallbacks.ContainsKey(response.userData))
            {
                var callback = loadAchievementDescriptionsCallbacks[response.userData];
                if (callback != null)
                {
                    var descriptions = new IAchievementDescription[response.achievements.Count];
                    for (var i = 0; i < response.achievements.Count; i++)
                    {
                        descriptions[i] = new AGSSocialAchievement(response.achievements[i]);
                    }

                    callback(descriptions);
                }

                loadAchievementDescriptionsCallbacks.Remove(response.userData);
            }
            else if (loadAchievementsCallbacks.ContainsKey(response.userData))
            {
                var callback = loadAchievementsCallbacks[response.userData];
                if (callback != null)
                {
                    var achievements = new IAchievement[response.achievements.Count];
                    for (var i = 0; i < response.achievements.Count; i++)
                    {
                        achievements[i] = new AGSSocialAchievement(response.achievements[i]);
                    }

                    callback(achievements);
                }

                loadAchievementsCallbacks.Remove(response.userData);
            }
        }
Ejemplo n.º 3
0
        public void FindAllAchievements(Assembly assembly)
        {
            //
            List <Type> types = assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(AchievementBase)) && !t.IsAbstract).ToList();

            foreach (Type type in types)
            {
                try
                {
                    IAchievement achievement = Activator.CreateInstance(type) as IAchievement;
                    if (achievement != null)
                    {
                        IAchievement alreadyExists = Achievements.FirstOrDefault(x => x.Id == achievement.Id);
                        if (alreadyExists != null)
                        {
                            Log.Default.WriteLine(LogLevels.Error, "Achievement {0} and {1} share the same id {2}", achievement.Title, alreadyExists.Title, achievement.Id);
                        }
                        else
                        {
                            _achievements.Add(achievement);
                            achievement.Achieved += AchievementAchieved;
                        }
                    }
                    else
                    {
                        Log.Default.WriteLine(LogLevels.Warning, "Achievement {0} cannot be instantiated and casted to right IAchievement", type.FullName);
                    }
                }
                catch (Exception ex)
                {
                    Log.Default.WriteLine(LogLevels.Warning, "Achievement {0} cannot be instantiated. Exception: {1}", type.FullName, ex.ToString());
                }
            }
        }
Ejemplo n.º 4
0
 // This function gets called when the LoadAchievement call completes
 void ProcessLoadedAchievements(IAchievement[] achievements)
 {
     if (achievements.Length == 0)
     { }
     else
     { }
 }
Ejemplo n.º 5
0
        public async Task CallAchievementUnlockEventAsync(IAchievement achievement, IDiscordUser user, IDiscordTextChannel channel)
        {
            if (achievement as AchievementAchievement == null)
            {
                return;
            }

            long id = user.Id.ToDbLong();

            using (var scope = MikiApp.Instance.Services.CreateScope())
            {
                var context = scope.ServiceProvider
                              .GetService <MikiDbContext>();
                int achievementCount = await context.Achievements
                                       .Where(q => q.UserId == id)
                                       .CountAsync();

                AchievementPacket p = new AchievementPacket()
                {
                    discordUser    = user,
                    discordChannel = channel,
                    achievement    = achievement,
                    count          = achievementCount
                };

                await OnAchievementUnlocked?.Invoke(p);
            }
        }
        private void AwardThirdPartyAchievements(string in_achievements)
        {
#if !(DOT_NET)
            // only do it for logged in players
            if (!UnityEngine.Social.localUser.authenticated)
            {
                Debug.Log("Couldnt award Unity Social achievement because localUser was not authenticated");
                return;
            }

            IAchievement achievement = UnityEngine.Social.CreateAchievement();
            achievement.id = in_achievements;
            achievement.percentCompleted = 100.0; //progress as double
            achievement.ReportProgress(result =>
            {
                if (result)
                {
                    Debug.Log("AwardThirdPartyAchievements Success");
                }
                else
                {
                    Debug.Log("AwardThirdPartyAchievements Failed");
                }
            });
#endif
        }
        private StackPanel CreateBadge(IAchievement achievement, EntityManager entityManager)
        {
            var background = new StackPanel("badge")
            {
                Width = WaveServices.Platform.ScreenWidth, Height = 150, DrawOrder = 1
            };

            var headline = new TextBlock()
            {
                Text = "Achievement completed!",
            };

            var title = new TextBlock()
            {
                Text = achievement.Title,
            };

            var description = new TextBlock()
            {
                Text = achievement.Description,
            };

            var dismissButton = new Button()
            {
                Text = "Dismiss",
            };

            dismissButton.Click += (sender, args) => entityManager.Remove("badge");

            background.Add(headline);
            background.Add(title);
            background.Add(description);

            return(background);
        }
        private void AchievementCompleted(IAchievement achievement)
        {
            var entityManager = WaveServices.ScreenContextManager.CurrentContext[0].EntityManager;
            var badge         = CreateBadge(achievement, entityManager);

            entityManager.Add(badge);
        }
Ejemplo n.º 9
0
        public void AddAchievement(IAchievement achievement)
        {
            var completedAchiemevent =
                new CompletedAchievement(DateTime.Now, achievement);

            CompletedAchievements.Add(completedAchiemevent);
        }
Ejemplo n.º 10
0
        public HashSet <IAchievement> GetAchievements(uint appId)
        {
            var i = new SteamUserStats(_apiKey);
            var achievementsTask = i.GetSchemaForGameAsync(appId);
            HashSet <IAchievement> achievements = new HashSet <IAchievement>();
            var response = achievementsTask.Result.Data;

            if (response.AvailableGameStats == null || response.AvailableGameStats.Achievements == null)
            {
                return(new HashSet <IAchievement>());
            }
            IReadOnlyCollection <SchemaGameAchievementModel> resultList = response.AvailableGameStats.Achievements;

            foreach (SchemaGameAchievementModel a in resultList)
            {
                IAchievement ach = new Achievement(a.DisplayName, a.Description, a.Icon, a.Name);
                achievements.Add(ach);
            }
            var globalPercentageTask = i.GetGlobalAchievementPercentagesForAppAsync(appId);

            foreach (GlobalAchievementPercentageModel globalAchievementPercentageModel in globalPercentageTask.Result.Data)
            {
                IAchievement achievement = achievements.FirstOrDefault(a => a.InternalShortName == globalAchievementPercentageModel.Name);
                if (achievement != null)
                {
                    achievement.GlobalCompletionPercentage = globalAchievementPercentageModel.Percent;
                }
            }
            return(achievements);
        }
        private void CreateAchievement(IAchievement achievement, int row)
        {
            var titleText = new TextBlock()
            {
                Text                = String.Format("{0}\r\n({1})", achievement.Title, achievement.Description),
                TextAlignment       = TextAlignment.Left,
                HorizontalAlignment = HorizontalAlignment.Left,
                Height              = 55
            };

            titleText.SetGridProperties(row, 0);

            var completedText = new TextBlock()
            {
                Text                = achievement.PercentageCompleted >= 100 ? "Completed" : "Not completed",
                TextAlignment       = TextAlignment.Right,
                HorizontalAlignment = HorizontalAlignment.Right,
                Width               = 200
            };

            completedText.SetGridProperties(row, 1);

            _grid.Add(titleText);
            _grid.Add(completedText);
        }
Ejemplo n.º 12
0
        private void AwardThirdPartyAchievements(string in_achievements)
        {
#if !(DOT_NET)
            // only do it for logged in players
            UnityEngine.Social.localUser.Authenticate(success =>
            {
                if (success)
                {
                    IAchievement achievement     = UnityEngine.Social.CreateAchievement();
                    achievement.id               = in_achievements;
                    achievement.percentCompleted = 100.0; //progress as double
                    achievement.ReportProgress(result =>
                    {
                        if (result)
                        {
                            Console.Write("AwardThirdPartyAchievements Success");
                        }
                        else
                        {
                            Console.Write("AwardThirdPartyAchievements Failed");
                        }
                    });
                }
            });
#endif
        }
Ejemplo n.º 13
0
 public void Achieve(string id)
 {
     if (isAchievesLoaded)
     {
         IAchievement achieve = achievements[id];
         if (!achieve.completed)
         {
             AudioCenter.Instance.PlaySound("Achieve");
             Social.ReportProgress(id, 100.0, (success) => {
                 if (success)
                 {
                     isAchievesLoaded = false;
                     Social.LoadAchievements((achieves) => {
                         achievements = new Dictionary <string, IAchievement>();
                         for (int i = 0; i < achieves.Length; i++)
                         {
                             achievements.Add(achieves[i].id, achieves[i]);
                         }
                         isAchievesLoaded = true;
                     });
                 }
             });
         }
     }
 }
Ejemplo n.º 14
0
        public virtual void SetUp()
        {
            _autoMocker = new RhinoAutoMocker <PlayerAchievementRetriever>();
            _autoMocker.PartialMockTheClassUnderTest();

            _expectedAchievement = new FakeAchievement();
            _autoMocker.Get <IAchievementRetriever>().Expect(mock => mock.GetAchievement(_achievementId)).Return(_expectedAchievement);

            _expectedPlayer = new Player
            {
                Name = "some player name",
                Id   = 51
            };
            _playerAchievement = new PlayerAchievement
            {
                AchievementId   = _achievementId,
                DateCreated     = DateTime.UtcNow.AddDays(-15),
                LastUpdatedDate = DateTime.UtcNow,
                PlayerId        = _expectedPlayer.Id
            };
            var playerAchievementsQueryable = new List <PlayerAchievement>
            {
                //--achievement with non-matching id
                new PlayerAchievement(),
                new PlayerAchievement
                {
                    AchievementId = _achievementId
                },
                _playerAchievement
            }.AsQueryable();

            _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <PlayerAchievement>()).Return(playerAchievementsQueryable);
        }
Ejemplo n.º 15
0
 // This function gets called when the LoadAchievement call completes
 void ProcessLoadedAchievements(IAchievement[] achievements)
 {
     if (achievements.Length == 0)
         Debug.Log ("Error: no achievements found");
     else
         Debug.Log ("Got " + achievements.Length + " achievements");
 }
Ejemplo n.º 16
0
        private void CreateOrUpdateAchievement(Player player, IAchievement achievement, PlayerAchievement currentPlayerAchievement,
                                               AchievementAwarded achievementAwarded)
        {
            if (currentPlayerAchievement == null)
            {
                var playerAchievement = new PlayerAchievement
                {
                    DateCreated      = DateTime.UtcNow,
                    LastUpdatedDate  = DateTime.UtcNow,
                    Player           = player,
                    PlayerId         = player.Id,
                    AchievementId    = achievement.Id,
                    AchievementLevel = achievementAwarded.LevelAwarded.Value,
                    RelatedEntities  = achievementAwarded.RelatedEntities
                };

                DataContext.Save(playerAchievement, new AnonymousApplicationUser());


                NotifyPlayer(player, achievement, achievementAwarded.LevelAwarded);
            }
            else
            {
                currentPlayerAchievement.RelatedEntities = achievementAwarded.RelatedEntities;

                if ((int)achievementAwarded.LevelAwarded.Value > (int)currentPlayerAchievement.AchievementLevel)
                {
                    currentPlayerAchievement.AchievementLevel = achievementAwarded.LevelAwarded.Value;
                    currentPlayerAchievement.LastUpdatedDate  = DateTime.UtcNow;

                    NotifyPlayer(player, achievement, achievementAwarded.LevelAwarded);
                }
            }
        }
Ejemplo n.º 17
0
 internal AchievementDto(IAchievement achievement)
 {
     id = achievement.id;
     percentCompleted = achievement.percentCompleted;
     completed        = achievement.completed;
     hidden           = achievement.hidden;
     lastReportedDate = achievement.lastReportedDate;
 }
        private IAchievement GetMockAchievementWithEarnedState(bool i_earnedState)
        {
            IAchievement mockAchievement = Substitute.For <IAchievement>();

            mockAchievement.IsEarned().Returns(i_earnedState);

            return(mockAchievement);
        }
Ejemplo n.º 19
0
        public void CantBuyFromBankWithoutPlayer()
        {
            var board = new Mock<IBoard>();
            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            Assert.Throws<ArgumentNullException>(() => bank.BuyResource(MaterialType.Brick, MaterialType.Grain, null));
        }
Ejemplo n.º 20
0
        public void CantOfferInvalidResource(MaterialType material)
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();

            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);
            Assert.Throws<ArgumentException>(() => bank.BuyResource(MaterialType.Grain, material, player.Object));
        }
Ejemplo n.º 21
0
        public async Task UnlockAsync(IAchievement achievement, IDiscordUser user, int r = 0)
        {
            long userid = user.Id.ToDbLong();

            if (await UnlockIsValid(achievement, userid, r))
            {
                await Notification.SendAchievementAsync(achievement, user);
            }
        }
Ejemplo n.º 22
0
 private void OnAchievementEarned(IAchievement achievement, bool firstTime)
 {
     lock (_lock)
     {
         Console.ResetColor();
         Console.SetCursorPosition(_client.Board.Width + 2 + BoardStartX, 0);
         Console.Write("You have earned [{0}]", achievement.Title);
     }
 }
Ejemplo n.º 23
0
 public HomeController(ILogger <HomeController> logger,
                       IThread thread,
                       IAchievement achievementService,
                       UserManager <LoginUser> userManager)
 {
     _threadService      = thread;
     _achievementService = achievementService;
     _userManager        = userManager;
 }
Ejemplo n.º 24
0
        public IAchievement SetCurrentAchievement(IAchievement target)
        {
            currenAchievement = target;
            currenAchievement.Activate();

            RestartTimer();

            return(currenAchievement);
        }
Ejemplo n.º 25
0
        private void AchievementAchieved(IAchievement achievement, bool firstTime)
        {
            Achieved?.Invoke(achievement, firstTime);

            foreach (IAchievement iter in Achievements.Where(x => x.IsAchievable))
            {
                iter.OnAchievementEarned(achievement, Achievements);
            }
        }
Ejemplo n.º 26
0
 public void Select(int achievementId)
 {
     SelectedItem = Achievements.FirstOrDefault(x => x.Id == achievementId);
     //if (achievement != null)
     //{
     //    int index = Achievements.IndexOf(achievement);
     //    SelectedIndex = index;
     //}
 }
Ejemplo n.º 27
0
        private void DoAchievementCompleted(IAchievement achievement)
        {
            var handler = AchievementCompleted;

            if (null != handler)
            {
                handler(achievement);
            }
        }
Ejemplo n.º 28
0
        public static AchievementViewModel CreateFrom(IAchievement achievement)
        {
            var src = new StreamImageSource
            {
                Stream = token => achievement.LoadImage()
            };

            return(new AchievementViewModel(achievement, src));
        }
        public static void Add(IAchievement a)
        {
            if (!enabled)
            {
                throw new InvalidOperationException("Initialize must be called before using the AchievementHolder.");
            }

            //Add the achievement to the list
            achievements.Add(a.Name, a);
        }
Ejemplo n.º 30
0
 private void OnAchievementEarned(IAchievement achievement, bool firstTime)
 {
     if (Client.IsSpectator)
         return;
     Achievement = achievement.Title;
     _achievementTimer.Stop();
     _lastAchievement = DateTime.Now;
     AchievementOpacity = 1;
     _achievementTimer.Start();
 }
Ejemplo n.º 31
0
 private void OnAchievementEarned(IAchievement achievement, bool firstTime)
 {
     if (achievement != null && firstTime && (Client.IsPlaying || Client.IsSpectator || ClientOptionsViewModel.Instance.DisplayOpponentsFieldEvenWhenNotPlaying))
     {
         AddEntry(new SelfAchievementEarnedEntry
         {
             AchievementTitle = achievement.Title
         });
     }
 }
        /// <summary>
        /// Updates the data displayed by the notification.
        /// </summary>
        /// <param name="achievement">Achievement to be displayed.</param>
        /// <returns></returns>
        private void UpdateDisplayedData(IAchievement achievement)
        {
            AchievementTitle       = achievement.Title;
            AchievementDescription = achievement.Description;
            var source = new StreamImageSource
            {
                Stream = token => achievement.LoadImage()
            };

            AchievementImage = source;
        }
Ejemplo n.º 33
0
        private void OnAchievementEarned(IAchievement achievement, bool firstTime)
        {
            Log.Default.WriteLine(LogLevels.Info, "Achievement: {0} {1} {2:dd/MM/yyyy HH:mm:ss}", achievement.Title, firstTime, achievement.LastTimeAchieved);

            Settings.Default.Achievements.Save(Client.Achievements.ToList());
            Settings.Default.Save();

            ExecuteOnUIThread.Invoke(() => Achievements = BuildAchievementList(Client.Achievements.ToList()));
            //
            RefreshAchievementsStats();
        }
Ejemplo n.º 34
0
    void Start()
    {
        GameCenterPlatform.ShowDefaultAchievementCompletionBanner(true);
        IAchievement achievement = Social.CreateAchievement();

        achievement.id = "axy01";

        Social.localUser.Authenticate(HandleAuthenticated);

        Debug.Log(Social.localUser);
    }
Ejemplo n.º 35
0
	private void HandleAchievementsLoaded (IAchievement[] achievements)
	{

		Debug.Log ("*** HandleAchievementsLoaded");

		foreach (IAchievement achievement in achievements)
		{

			Debug.Log ("*   achievement = " + achievement.ToString ());

		}

	}
Ejemplo n.º 36
0
	// This function gets called when the LoadAchievement call completes
	void ProcessLoadedAchievements (IAchievement[] achievements) {
		if (achievements.Length == 0)
			Debug.Log ("Error: no achievements found");
		else
			Debug.Log ("Got " + achievements.Length + " achievements");
		
		// You can also call into the functions like this
		Social.ReportProgress ("Achievement01", 100.0, result => {
			if (result)
				Debug.Log ("Successfully reported achievement progress");
			else
				Debug.Log ("Failed to report achievement");
		});
	}
Ejemplo n.º 37
0
  public static void init(IAchievement[] loadedAchievements) {
    achievementDict = new Dictionary<string, List<AchievementObject>>();
    allAchievements = new List<AchievementObject>();

    // I know that this code for getting current progress of achievement is very dirty. Don't do like this next time :D
    Dictionary<string, IAchievement> loadedAchievementDict = new Dictionary<string, IAchievement>();
    foreach (IAchievement loadedAch in loadedAchievements) {
      loadedAchievementDict.Add(loadedAch.id, loadedAch);
    }
    List<AchievementObject> objList;
    // Beginning of the journey
    // objList = new List<AchievementObject>();
    // objList.Add(new AchievementObject("CgkIubjEkcMWEAIQBQ", false, true));
    // achievements.Add("TutorialDone", objList);
    // Dreamwalker series
    objList = new List<AchievementObject>();
    objList.Add(new AchievementObject("DREAMWALKER_1", 0, 1000, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["DREAMWALKER_1"]].percentCompleted));
    objList.Add(new AchievementObject("DREAMWALKER_2", 0, 2500, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["DREAMWALKER_2"]].percentCompleted));
    objList.Add(new AchievementObject("DREAMWALKER_3", 0, 5000, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["DREAMWALKER_3"]].percentCompleted));
    allAchievements.AddRange(objList);
    achievementDict.Add("BestCubes", objList);
    // Toy collector series
    objList = new List<AchievementObject>();
    objList.Add(new AchievementObject("COLLECTOR_1", 0, 5, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["COLLECTOR_1"]].percentCompleted));
    objList.Add(new AchievementObject("COLLECTOR_2", 0, 10, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["COLLECTOR_2"]].percentCompleted));
    objList.Add(new AchievementObject("COLLECTOR_3", 0, 20, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["COLLECTOR_3"]].percentCompleted));
    allAchievements.AddRange(objList);
    achievementDict.Add("NumCharactersHave", objList);
    // Traveler series
    objList = new List<AchievementObject>();
    objList.Add(new AchievementObject("TRAVELER_1", 0, 20000, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["TRAVELER_1"]].percentCompleted));
    objList.Add(new AchievementObject("TRAVELER_2", 0, 100000, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["TRAVELER_2"]].percentCompleted));
    objList.Add(new AchievementObject("TRAVELER_3", 0, 1000000, loadedAchievementDict[SocialPlatformManager.spm.achievementInfoMap["TRAVELER_3"]].percentCompleted));
    allAchievements.AddRange(objList);
    achievementDict.Add("TotalCubes", objList);

    // Update AchievementObjects
    DataManager.dm.setInt("BestCubes", DataManager.dm.getInt("BestCubes"));
    DataManager.dm.setInt("NumCharactersHave", DataManager.dm.getInt("NumCharactersHave"));
    DataManager.dm.setInt("TotalCubes", DataManager.dm.getInt("TotalCubes"));
    
    foreach (AchievementObject obj in allAchievements) {
      obj.report(0);
    }

    SocialPlatformManager.spm.am.reportAllLeaderboard();
  }
Ejemplo n.º 38
0
 private void ProcessLoadedAchievements(IAchievement[] achievements)
 {
     if(achievements.Length > 0)
         hasLoadedSocial = true;
 }
Ejemplo n.º 39
0
        public void BuyFailsIfPlayerHasNotTheOfferedResources()
        {
            var board = new Mock<IBoard>();
            board.Setup(b => b.GetHarbors(It.IsAny<IPlayer>())).Returns(new IHarbor[] { });

            var player = new Mock<IPlayer>();
            player.Setup(p => p.HasResources(It.IsAny<MaterialType[]>())).Returns(false);

            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);
            Assert.Throws<InvalidOperationException>(() => bank.BuyResource(MaterialType.Grain, MaterialType.Lumber, player.Object));
        }
		internal iOSAchievement (string _identifier)
		{
			m_achievementData	= Social.CreateAchievement();
			Identifier			= _identifier;
		}
Ejemplo n.º 41
0
    void ProcessLoadedAchievements( IAchievement[] achievements )
    {
        // Clear this list
        //	if ( this.achievements != null ) {
        //		achievements = this.achievements;
        //	}

        if ( achievements.Length <= 0 ) {
            Debug.Log("Achievement not found.");
        }
        else {
            if ( ! Property.release )
            {
                Debug.Log("Got "+achievements.Length+" achievements.");
            }
            this.achievements = achievements;
        }
    }
Ejemplo n.º 42
0
 public void onLoadAchievements(IAchievement[] items)
 {
 }
		internal static iOSAchievement[] ConvertAchievementList (IAchievement[] _achievementList)
		{
			if (_achievementList == null)
				return null;

			int 				_count				= _achievementList.Length;
			iOSAchievement[]	_iOSAchievementList	= new iOSAchievement[_count];
			
			for (int _iter = 0; _iter < _count; _iter++)
				_iOSAchievementList[_iter]			= new iOSAchievement(_achievementList[_iter]);

			return _iOSAchievementList;
		}
Ejemplo n.º 44
0
        public void CantVerifyWinConditionOnNullPlayer()
        {
            var board = new Mock<IBoard>();
            var achievements = new IAchievement[0];

            var bank = new Bank(board.Object, achievements);
            Assert.Throws<ArgumentNullException>(() => bank.VerifyWinCondition(null));
        }
Ejemplo n.º 45
0
        public void BuyDevelopmentCardTest()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var turn = new Mock<ITurn>();

            player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(true);

            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            bank.BuyDevelopmentCard(player.Object, turn.Object);

            player.Verify(p => p.TakeResources(Bank.DEVELOPMENTCARD_COST));
            player.Verify(p => p.AddCard(It.IsAny<IDevelopmentCard>()));
        }
Ejemplo n.º 46
0
        public void DifferentResourceHarborGetsIgnored()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var achievements = new IAchievement[0];

            var bank = new Bank(board.Object, achievements);
            var harbor = new Mock<IHarbor>();
            harbor.Setup(h => h.Discount).Returns(MaterialType.Wool);
            board.Setup(b => b.GetHarbors(player.Object)).Returns(new IHarbor[] { harbor.Object });

            MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object);
            MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain, MaterialType.Grain, MaterialType.Grain };
            Assert.Equal(expected, result);
        }
 void AchievementInitiate()
 {
     achievement = Social.CreateAchievement();
 }
Ejemplo n.º 48
0
        public void BuyDevelopmentCardFailsIfPlayerHasNoResources()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var turn = new Mock<ITurn>();
            player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(false);

            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            Assert.Throws<InvalidOperationException>(() => bank.BuyDevelopmentCard(player.Object, turn.Object));
        }
Ejemplo n.º 49
0
 private void HandleAchievementsLoaded(IAchievement[] achievements)
 {
     foreach (IAchievement achievement in achievements) {
     }
 }
Ejemplo n.º 50
0
        public void BuyDevelopmentCantBeCalledWithoutPlayer(IPlayer player, ITurn turn)
        {
            var board = new Mock<IBoard>();
            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            Assert.Throws<ArgumentNullException>(() => bank.BuyDevelopmentCard(player, turn));
        }
Ejemplo n.º 51
0
        public void GetInvestmentCostDefaultReturns4()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object);
            MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain, MaterialType.Grain, MaterialType.Grain };
            Assert.Equal(expected, result);
        }
Ejemplo n.º 52
0
        public void GetInvestmentCostUsesCheapestHarbor()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            var unsourcedHarbor = new Mock<IHarbor>();
            unsourcedHarbor.Setup(h => h.Discount).Returns(MaterialType.Unsourced);
            var resourceHarbor = new Mock<IHarbor>();
            resourceHarbor.Setup(h => h.Discount).Returns(MaterialType.Grain);
            board.Setup(b => b.GetHarbors(player.Object)).Returns(new IHarbor[] { unsourcedHarbor.Object, resourceHarbor.Object });

            MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object);
            MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain };
            Assert.Equal(expected, result);
        }
 void OnLoadAC(IAchievement[] achievements)
 {
 }
		internal iOSAchievement (IAchievement _achievementData)
		{
			m_achievementData	= _achievementData;
		}
Ejemplo n.º 55
0
    void ProcessLoadedAchievements(IAchievement[] achievements)
    {
        //Clear the list
        if(this.achievements != null)
            this.achievements = null;

        if (achievements.Length == 0)
            Debug.Log ("Error: no achievements found");
        else
        {
            Debug.Log ("Got " + achievements.Length + " achievements");
            this.achievements = achievements;
        }
    }
Ejemplo n.º 56
0
 public void reportAllAchievements(IAchievement[] achievements) {
   // Because LoadAchievements() does not work, just report current progress
   AchievementConstants.init(achievements);
   
 }
Ejemplo n.º 57
0
        /// <summary>
        /// Loads the achievement state for the current user.
        /// <param name="callback">The callback to receive the achievements</param>
        /// </summary>
        public void LoadAchievements(Action<IAchievement[]> callback)
        {
            if (!IsAuthenticated())
            {
                GooglePlayGames.OurUtils.Logger.e("LoadAchievements can only be called after authentication.");
                callback.Invoke(null);
            }

            mClient.LoadAchievements(ach =>
                {
                    IAchievement[] data = new IAchievement[ach.Length];
                    for (int i = 0; i < data.Length; i++)
                    {
                        data[i] = new PlayGamesAchievement(ach[i]);
                    }

                    callback.Invoke(data);
                });
        }
Ejemplo n.º 58
0
        public void BuyCardFailsWhenNoMoreCardsLeft()
        {
            var board = new Mock<IBoard>();
            var player = new Mock<IPlayer>();
            var turn = new Mock<ITurn>();

            player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(true);

            var achievements = new IAchievement[0];
            var bank = new Bank(board.Object, achievements);

            for (int i = 0; i < 25; i++)
            {
                bank.BuyDevelopmentCard(player.Object, turn.Object);
            }
            Assert.Throws<InvalidOperationException>(() => bank.BuyDevelopmentCard(player.Object, turn.Object));
        }
Ejemplo n.º 59
0
 public void onLoadAchievements(IAchievement[] items)
 {
     Debug.Log ("onLoadAchievements");
 }
Ejemplo n.º 60
0
 public void OnLoadAC(IAchievement[] achievements)
 {
     Debug.Log("GPGUI: Loaded Achievements: " + achievements.Length);
 }