コード例 #1
0
ファイル: AvatarStateTest.cs プロジェクト: planetarium/lib9c
        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,
            }
                );
        }
コード例 #2
0
        public static void HandleWorldQuestUpdate(Packet packet)
        {
            var count = packet.ReadInt32("Count");

            for (int i = 0; i < count; i++)
            {
                packet.ReadTime("LastUpdate", i);
                var        questID    = packet.ReadUInt32 <QuestId>("QuestID", i);
                var        timer      = packet.ReadUInt32("Timer", i);
                var        variableID = packet.ReadInt32("VariableID", i);
                var        value      = packet.ReadInt32("Value", i);
                WorldQuest worldQuest = new WorldQuest
                {
                    id       = (uint)questID,
                    duration = (uint)timer,
                    variable = (int)variableID,
                    value    = (int)value,
                };
                Storage.WorldQuests.Add(worldQuest, packet.TimeSpan);
            }
        }