/// <summary>
        /// Check if any quest is completed from recieved GameMaster event massage
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GameMaster_MessageReceived(object sender, IGameMasterEventArgs e)
        {
            if (e.Player.UniqueMultiplayerID != Game1.player.UniqueMultiplayerID)
            {
                return; // Only client must to complete quest and inform a server about it (via NetFields in player's questlog internally in vanilla game)
            }
            var ps = this.GameMaster.Data.GetPlayerState();

            if (e.Message is RecruitMessage recruitMessage && !ps.recruited.Contains(recruitMessage.CompanionName))
            {
                ps.recruited.Add(recruitMessage.CompanionName);
                this.GameMaster.SyncData();

                Game1.player.checkForQuestComplete(null, -1, -1, null, null, RecruitmentQuest.TYPE_ID);
                this.StoryHelper.CompleteQuest(2); // Immediatelly complete the first companion recruited quest
            }
        }
Exemple #2
0
        /// <summary>
        /// Check if any quest is completed from recieved GameMaster event massage
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GameMaster_MessageReceived(object sender, IGameMasterEventArgs e)
        {
            if (e.Player.UniqueMultiplayerID != Game1.player.UniqueMultiplayerID)
            {
                return; // Only client must to complete quest and inform a server about it (via NetFields in player's questlog internally in vanilla game)
            }
            var ps = this.GameMaster.Data.GetPlayerState();

            if (e.Message is RecruitMessage recruitMessage && !ps.recruited.Contains(recruitMessage.CompanionName))
            {
                ps.recruited.Add(recruitMessage.CompanionName);
                this.GameMaster.SyncData();
            }

            foreach (Quest quest in e.Player.questLog)
            {
                if (quest.questType.Value == StoryHelper.ADVENTURE_QUEST_TYPE)
                {
                    this.CheckForComplete(quest, e.Message);
                }
            }
        }