protected void guideQuest()
        {
            Player           player           = Main.player[Main.myPlayer];
            GuideQuestSystem guideQuestSystem = player.GetModPlayer <GuideQuestSystem>(mod);

            if (finishedGuideQuest)
            {
            }
            else if (guideQuestSystem.CurrentQuest == -1)
            {
                var NewQuest = guideQuestSystem.ChooseNewQuest();
                Main.npcChatText              = guideQuestSystem.Quests[NewQuest].ToString();
                Main.npcChatCornerItem        = guideQuestSystem.Quests[NewQuest].ItemType;
                guideQuestSystem.CurrentQuest = NewQuest;
                return;
            }
            else
            {
                if (guideQuestSystem.CheckQuest())
                {
                    guideQuestSystem.CompleteQuest(this);
                    return;
                }
                else
                {
                    Main.npcChatText       = guideQuestSystem.GetCurrentQuest().ToString();
                    Main.npcChatCornerItem = guideQuestSystem.GetCurrentQuest().ItemType;
                    return;
                }
            }
        }
示例#2
0
        public override void PostDraw(SpriteBatch spriteBatch, Color drawColor)
        {
            Texture2D        texture          = mod.GetTexture("Miscellaneous/QuestIcon2");
            Texture2D        texture2         = mod.GetTexture("Miscellaneous/QuestIcon3");
            Player           player           = Main.LocalPlayer;
            GuideQuestSystem guideQuestSystem = player.GetModPlayer <GuideQuestSystem>();

            if (guideQuestSystem.CurrentQuest == -1)
            {
                if (texture == null)
                {
                    return;
                }
                Vector2 origin   = new Vector2(texture.Width / 2, texture.Height / 2);
                float   y        = 50.0f;
                Vector2 position = npc.Center - Main.screenPosition - new Vector2(0.0f, y);
                spriteBatch.Draw(texture, position, null, Color.White, 0, origin, npc.scale, SpriteEffects.None, 0.0f);
            }
            foreach (Item item in player.inventory)
            {
                if (item.type == ModContent.ItemType <TheGuideforGuides>() && guideQuestSystem.CurrentQuest != -1)
                {
                    if (texture == null)
                    {
                        return;
                    }
                    Vector2 origin   = new Vector2(texture.Width / 2, texture.Height / 2);
                    float   y        = 50.0f;
                    Vector2 position = npc.Center - Main.screenPosition - new Vector2(0.0f, y);
                    spriteBatch.Draw(texture2, position, null, Color.White, 0, origin, npc.scale, SpriteEffects.None, 0.0f);
                }
            }
        }
            public override void SendClientChanges(ModPlayer clientPlayer)
            {
                GuideQuestSystem clone = clientPlayer as GuideQuestSystem;

                if (clone.CurrentQuest != CurrentQuest)
                {
                    ModPacket packet = mod.GetPacket();
                    packet.Write((byte)5);
                    packet.Write(player.whoAmI);
                    packet.Write(CurrentQuest);
                    packet.Send();
                }
            }
            public override void clientClone(ModPlayer clientClone)
            {
                GuideQuestSystem clone = clientClone as GuideQuestSystem;

                clone.CurrentQuest = CurrentQuest;
            }