Beispiel #1
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1)
            {
                if (text.ToLower() == ArtifactId.ToLower())
                {
                    string reply = "Do you have the story that goes with Cloudsong? I\'d very much like to read it. If you don\'t, go, get the scrolls and use them. Then, when you\'ve translated them into a book, return the book to me, and I will give you the artifact. Do you have the [story]?";
                    scholar.TurnTo(player);
                    scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                    Step = 2;
                    return(true);
                }
            }

            if (text.ToLower() == "story" && Step > 1)
            {
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow,
                              "Well, hand me the story. If you don't have it, go out and get it!");
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            GamePlayer player = (GamePlayer)source;

            if (player == null || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Oh, the mysterious Ring of Unyielding Will. Do you have the scrolls on it? I've found a few that allude to its true nature, but haven't found anything with any detail.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #3
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            // ReSharper disable once UsePatternMatching
            GamePlayer player = source as GamePlayer;

            if (player == null || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Oh, the mysterious Stone of Atlantis. Do you have the scrolls on it? I've found a few that allude to its true nature, but haven't found anything with any detail.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            // ReSharper disable once UsePatternMatching
            GamePlayer player = source as GamePlayer;

            if (player == null || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "The Arms of the Winds! If I only had Anthos\' Fish Skin. It is important that I have the scales, since Anthos trapped the magic of the Arms of the Winds in the Skin. If you have lost the skin, and I hope you haven\'t, you will have to go find the scales again and bring them to me.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #5
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "The scholars have often remarked about the craftsmanship that went into these bracers. I\'m impressed. I don\'t think we can make anything to compare with it. Hmm. Well, I\'m here to study the lifestyles of Atlanteans through their written words, not their crafts. Hand me the Arbiter\'s Personal Papers please. If you don\'t have it, I suggest you hunt the creatures of Oceanus til you find it.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }
            else if (Step == 3)
            {
                switch (text.ToLower())
                {
                case "strength":
                case "constitution":
                case "dexterity":
                case "quickness":
                case "casting":
                {
                    string versionId = $";;{text.ToLower()}";
                    Dictionary <string, ItemTemplate> versions = ArtifactMgr.GetArtifactVersions(ArtifactId, (eCharacterClass)player.CharacterClass.ID, player.Realm);
                    ItemTemplate template = versions[versionId];
                    if (template == null)
                    {
                        Log.Warn($"Artifact version {versionId} not found");
                        return(false);
                    }

                    if (GiveItem(scholar, player, ArtifactId, template))
                    {
                        string reply = "You have made your choice. Here is your bracer. Do not lose it. It is irreplaceable.";
                        scholar.TurnTo(player);
                        scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                        FinishQuest();
                        return(true);
                    }

                    return(false);
                }
                }

                return(false);
            }

            return(false);
        }
Beispiel #6
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = $"There is powerful magic flowing through that artifact, {player.CharacterClass.Name}, but I cannot release it without the spell hidden in the Journal. Please give me Eirene\'s Journal now. If you no longer have it, go and find the pages again. I will wait for you.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            if (Step == 3)
            {
                Dictionary <string, ItemTemplate> versions = ArtifactMgr.GetArtifactVersions(ArtifactId, (eCharacterClass)player.CharacterClass.ID, player.Realm);
                string version = text + ";;";

                if (versions.ContainsKey(version))
                {
                    if (GiveItem(scholar, player, ArtifactId, versions[version]))
                    {
                        string reply = $"The magic of Eirene\'s Chestpiece is unlocked and linked now to you, {player.CharacterClass.Name}. Please know that if you lose or destroy this Chestpiece, it will be gone from you forever. I hope it will help you succeed in the trials. Bring glory to  {GlobalConstants.RealmToName(player.Realm)}, {player.CharacterClass.Name}!";
                        scholar.TurnTo(player);
                        scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                        FinishQuest();
                        return(true);
                    }
                }
            }

            return(false);
        }
Beispiel #7
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Tartaros\' Gift is an interesting staff. The story of its making rather unique, don\'t you think? If you give me the scroll, I\'ll give you the staff, with all its ancient powers back.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #8
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Some of the other scholars have been studying this shield. It belonged to someone named Remus, supposedly a great champion. Do you happen to have the story of the Aten Shield? Perhaps it will tell us more of Remus. I\'m curious what the Atlanteans considered a great champion. Also, with the story, I should be able to unlock the power of this shield. If you don\'t have the story, go seek it out amongst the creatures of Oceanus.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Vara was a very skilled healer and she put her skills into the Healer\'s Embrace cloak. It would help me to unlock them if I was to read her Medical Log. Please give me Vara\'s Medical Log now so that I may awaken the magic within the Cloak for you.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #10
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Ah, the Shield of Khaos! What do you know of it? Probably as much as we do! Well, do you have the book on it? Come on then, hand it over. I\'ll unlock this shield\'s abilities for you once you hand me the book.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #11
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Do you have the story that goes along with that? If you do, hand it in to me, and I will unlock the power that these boots had been vested with. If not, go get the story!";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #12
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = $"Tell me, {player.CharacterClass.Name}, do you have any versions of the Love Story to go with the Guard of Valor? I have found a few copies, but I am always looking for more. Each one has different information in them that helps me with my research. Please give me the Love Story now while I finish up with the Guard of Valor.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "The magic contained in the Alvarus\' Letter has already begun to work on the Leggings while they were in your possession. All I need now are the letters you have bundled up so that the spell will be complete. If you have accidentally lost those letters, you must go and find them before the spell can be completed.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #14
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "This bracelet was quite beautiful and powerful. Let\'s get that power flowing again! Give me the King\'s Vase and I shall examine it. Once I have uncovered the secrets in the Vase, I shall make the Band of Stars available to you.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            return(false);
        }
Beispiel #15
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply =
                    $"Ah, Bruiser! Many smiths would love a hammer such as that! Well, for  {player.GetName(1, false)} like you, I am not sure what purpose it will serve! I hope you have better luck than its previous owner! Do you have any scrolls with it?";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            if (Step == 3)
            {
                switch (text.ToLower())
                {
                case "single":
                case "double":
                case "polearm":
                {
                    if (text.ToLower() == "polearm" && player.CharacterClass.ID != (int)eCharacterClass.Armsman)
                    {
                        return(false);
                    }

                    string versionId = $";{text.ToLower()};";
                    Dictionary <string, ItemTemplate> versions = ArtifactMgr.GetArtifactVersions(ArtifactId, (eCharacterClass)player.CharacterClass.ID, player.Realm);
                    if (!versions.ContainsKey(versionId))
                    {
                        Log.Warn($"Artifact version {versionId} not found");
                        return(false);
                    }

                    ItemTemplate template = versions[versionId];
                    if (GiveItem(scholar, player, ArtifactId, template))
                    {
                        string reply = "May Bruiser serve you well. Do not lose this, for I can only unlock the artifact\'s powers once.";
                        scholar.TurnTo(player);
                        scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                        FinishQuest();
                        return(true);
                    }

                    return(false);
                }
                }

                return(false);
            }

            return(false);
        }
Beispiel #16
0
        public override int GetHashCode()
        {
            var hashCode = -146190810;

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(ArtifactId.ToLower());

            return(hashCode);
        }
Beispiel #17
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Battler, eh? Careful, when I unlock this sword's abilities, for it has a thirst for blood, from what we've learned of it. Do you have the scrolls that talk about Battler?";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }

            if (Step == 3)
            {
                switch (text.ToLower())
                {
                case "slashing":
                case "crushing":
                {
                    SetCustomProperty("DamageType", text.ToLower());
                    string reply = $"Now, would you like your Battler{(text.ToLower() == "slashing" ? string.Empty : " Mace")} to be [one handed] or [two handed]?";
                    scholar.TurnTo(player);
                    scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                    Step = 4;
                    return(true);
                }
                }

                return(false);
            }

            if (Step == 4)
            {
                switch (text.ToLower())
                {
                case "one handed":
                case "two handed":
                {
                    string versionId = $"{GetCustomProperty("DamageType")};{text.ToLower()};";
                    Dictionary <string, ItemTemplate> versions = ArtifactMgr.GetArtifactVersions(ArtifactId, (eCharacterClass)player.CharacterClass.ID, player.Realm);
                    ItemTemplate template = versions[versionId];
                    if (template == null)
                    {
                        Log.Warn($"Artifact version {versionId} not found");
                        return(false);
                    }

                    if (GiveItem(scholar, player, ArtifactId, template))
                    {
                        string reply = $"Here you are. Do not lose {template.Name}, for it is irreplaceable.";
                        scholar.TurnTo(player);
                        scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                        FinishQuest();
                        return(true);
                    }

                    return(false);
                }
                }

                return(false);
            }

            return(false);
        }
Beispiel #18
0
        /// <summary>
        /// Handle whispers to the scholar.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public override bool WhisperReceive(GameLiving source, GameLiving target, string text)
        {
            if (base.WhisperReceive(source, target, text))
            {
                return(true);
            }

            if (!(source is GamePlayer player) || !(target is Scholar scholar))
            {
                return(false);
            }

            if (Step == 1 && text.ToLower() == ArtifactId.ToLower())
            {
                string reply = "Ah, yes, the axe of Malice. It has an interesting tale, but I'm not sure I believe it. Did you find the story of the axe? If you have, please give it to me now.";
                scholar.TurnTo(player);
                scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                Step = 2;
                return(true);
            }
            else if (Step == 3)
            {
                switch (text.ToLower())
                {
                case "slashing":
                case "crushing":
                {
                    SetCustomProperty("DamageType", text.ToLower());
                    string reply = $"Would you like your {text.ToLower()} Malice\'s Axe to be [one handed] or [two handed]?";
                    scholar.TurnTo(player);
                    scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                    Step = 4;
                    return(true);
                }
                }

                return(false);
            }
            else if (Step == 4)
            {
                switch (text.ToLower())
                {
                case "one handed":
                case "two handed":
                {
                    string versionId = $"{GetCustomProperty("DamageType")};{text.ToLower()};";
                    Dictionary <string, ItemTemplate> versions = ArtifactMgr.GetArtifactVersions(ArtifactId, (eCharacterClass)player.CharacterClass.ID, player.Realm);
                    ItemTemplate template = versions[versionId];
                    if (template == null)
                    {
                        Log.Warn($"Artifact version {versionId} not found");
                        return(false);
                    }

                    if (GiveItem(scholar, player, ArtifactId, template))
                    {
                        string reply = $"Here\'s your {template.Name}. May it serve you well. Just don\'t lose it. You can\'t ever replace it.";
                        scholar.TurnTo(player);
                        scholar.SayTo(player, eChatLoc.CL_PopupWindow, reply);
                        FinishQuest();
                        return(true);
                    }

                    return(false);
                }
                }

                return(false);
            }

            return(false);
        }