示例#1
0
        public void UpdateFromQuestRewardDeterministic()
        {
            var     rankingState  = new RankingState1();
            Address avatarAddress = new PrivateKey().ToAddress();
            Address agentAddress  = new PrivateKey().ToAddress();
            var     avatarState   = new AvatarState(
                avatarAddress,
                agentAddress,
                0,
                _tableSheets.GetAvatarSheets(),
                new GameConfigState(),
                rankingState.UpdateRankingMap(avatarAddress));
            var itemIds = avatarState.questList.OfType <ItemTypeCollectQuest>().First().ItemIds;
            var map     = new Dictionary <int, int>()
            {
                [400000] = 1,
                [302002] = 1,
                [302003] = 1,
                [302001] = 1,
                [306023] = 1,
                [302000] = 1,
            };

            var serialized = (Dictionary)avatarState.questList.OfType <WorldQuest>().First().Serialize();

            serialized = serialized.SetItem("reward", new Nekoyume.Model.Quest.QuestReward(map).Serialize());

            var quest = new WorldQuest(serialized);

            avatarState.UpdateFromQuestReward(quest, _tableSheets.MaterialItemSheet);
            Assert.Equal(
                avatarState.questList.OfType <ItemTypeCollectQuest>().First().ItemIds,
                new List <int>()
            {
                302000,
                302001,
                302002,
                302003,
                306023,
            }
                );
        }