Esempio n. 1
0
    public Quest(ushort type, XElement elem)
    {
        XElement n;

        QuestType = type;
        QuestId   = elem.Attribute("id").Value;
        if ((n = elem.Element("LevelReq")) != null)
        {
            LevelRequirement = Utils.FromString(n.Value);
        }
        else
        {
            LevelRequirement = 0;
        }
        QuestRequirement = new List <string>();
        foreach (var i in elem.Elements("QuestReq"))
        {
            QuestRequirement.Add(i.Value);
        }
        Objectives = new List <QuestObjective>();
        foreach (var i in elem.Elements("Objective"))
        {
            Objectives.Add(new QuestObjective(i));
        }
        Rewards = new QuestReward();
        if ((n = elem.Element("Reward")) != null)
        {
            Rewards.FromXML(n);
        }
    }
Esempio n. 2
0
        private bool Reward(Player player)
        {
            QuestReward reward = Global.QuestEngine.GetRewardForPlayer(player, Quest);

            if (reward != null && reward.Items != null)
            {
                if (Global.StorageService.GetFreeSlots(player.Inventory).Count < reward.Items.Count)
                {
                    SystemMessages.InventoryIsFull.Send(player);
                    return(false);
                }

                foreach (KeyValuePair <int, int> keyValuePair in reward.Items)
                {
                    Global.StorageService.AddItem(player, player.Inventory, keyValuePair.Key, keyValuePair.Value);
                }
            }

            if (Quest.RewardMoney > 0)
            {
                Global.StorageService.AddMoneys(player, player.Inventory, Quest.RewardMoney);
                SystemMessages.YouReceiveMoney(Quest.RewardMoney.ToString(CultureInfo.InvariantCulture)).Send(player.Connection);
            }

            if (Quest.RewardExp > 0)
            {
                Global.PlayerService.AddExp(player, Quest.RewardExp, null);
            }

            return(true);
        }
Esempio n. 3
0
        private static void ShowQuestRewardInfo(ref bool show, string prefix, QuestReward reward)
        {
            RPGMakerGUI.FoldoutList(ref show, prefix, reward.Items, Rm_RPGHandler.Instance.Repositories.Items.AllItems, "+ItemReward",
                                    "", "Click +ItemReward to add an item as a reward.", "ItemID");
            RPGMakerGUI.FoldoutList(ref show, prefix + " (Craftable Items)", reward.CraftableItems, Rm_RPGHandler.Instance.Repositories.CraftableItems.AllItems, "+CraftItemReward",
                                    "", "Click +CraftItemReward to add a craftable item as a reward.", "ItemID");
            RPGMakerGUI.FoldoutList(ref show, prefix + " (Quest Items)", reward.QuestItems, Rm_RPGHandler.Instance.Repositories.QuestItems.AllItems, "+QuestItemReward",
                                    "", "Click +QuestItemReward to add a quest item as a reward.", "ItemID");

            reward.Exp  = RPGMakerGUI.IntField("Exp Reward:", reward.Exp);
            reward.Gold = RPGMakerGUI.IntField("Gold Reward:", reward.Gold);

            if (RPGMakerGUI.Toggle("Gives Reputation?", ref reward.GivesReputation))
            {
                RPGMakerGUI.PopupID <ReputationDefinition>("- Reputation", ref reward.Reputation.ReputationID);
                reward.Reputation.Value = RPGMakerGUI.IntField("- Amount", reward.Reputation.Value);
            }
            if (RPGMakerGUI.Toggle("Gives Trait Exp?", ref reward.GivesTraitExp))
            {
                RPGMakerGUI.PopupID <Rm_TraitDefintion>("- Trait", ref reward.TraitID);
                reward.TraitExp = RPGMakerGUI.IntField("- Amount", reward.TraitExp);
            }
            if (RPGMakerGUI.Toggle("Unlocks Skill?", ref reward.UnlocksSkill))
            {
                RPGMakerGUI.PopupID <Skill>("- Skill", ref reward.SkillID);
            }
            if (RPGMakerGUI.Toggle("Applys Status Effect?", ref reward.ApplysStatusEffect))
            {
                RPGMakerGUI.PopupID <StatusEffect>("- Status Effect", ref reward.StatusEffectID);
            }
        }
Esempio n. 4
0
        private void WriteReward(BinaryWriter w, QuestReward o)
        {
            w.Write((byte)o.Type);
            w.Write(o.Value);
            w.Write((sbyte)o.LuckMorale);
            w.Write((byte)o.Resource);
            w.Write((byte)o.SkillType);
            if (o.SecondarySkill != null)
            {
                w.Write((byte)o.SecondarySkill.Level);
                w.Write((byte)o.SecondarySkill.Type);
            }

            if (o.Artifact != null)
            {
                w.Write(o.Artifact.Value);
            }

            if (o.Spell != null)
            {
                w.Write(o.Spell.Value);
            }

            if (o.Monster != null)
            {
                w.Write(o.Monster.Value);
            }
        }
Esempio n. 5
0
    private Quest GetRandomQuest(QuestReward type)
    {
        List <string> usedQuests = new List <string>();

        for (int i = 0; i < currentQuests.Count; ++i)
        {
            usedQuests.Add(currentQuests[i].name);
        }

        List <Quest> validQuests = new List <Quest> ();

        for (int i = 0; i < quests.Count; ++i)
        {
            if (quests[i].rewardType == type && !usedQuests.Contains(quests[i].name))
            {
                validQuests.Add(quests[i]);
            }
        }
        if (validQuests.Count == 0)
        {
            Debug.Log("no valid quests. type: " + type.ToString());
            return(null);
        }
        int   random = Random.Range(0, validQuests.Count);
        Quest quest  = validQuests [random].GetDublicate();

        quest.CalculateTroops(baseDifficultyValue);
        return(quest);
    }
Esempio n. 6
0
        private void RewardImpl(QuestReward reward)
        {
            switch (reward.Type)
            {
            case QuestRewardType.credits: {
                GetComponent <MmoActor>()?.ActionExecutor?._AddCredits(reward.Count);
            }
            break;

            case QuestRewardType.exp: {
                GetComponent <PlayerCharacterObject>()?.AddExp(reward.Count);
            }
            break;

            case QuestRewardType.nebula_credits: {
                GetComponent <MmoActor>()?.ActionExecutor?.AddNebulaCredits(reward.Count);
            }
            break;

            case QuestRewardType.item: {
                InventoryItemQuestReward itemQuestReward = reward as InventoryItemQuestReward;
                if (itemQuestReward != null)
                {
                    RewardItemImpl(itemQuestReward);
                }
            }
            break;
            }
        }
Esempio n. 7
0
        public void SendDialog(Quest quest = null, QuestReward reward = null)
        {
            new SpShowDialog(Npc, Stage, Buttons, DialogId, Special1, Special2, Page, Uid, quest, reward).Send(Player.Connection);

            Global.VisibleService.Send(Player, new SpCharacterEmotions(Player, PlayerEmotion.Dialog));
            Global.VisibleService.Send(Npc, new SpNpcEmotion(Npc, Player, new Random().Next(1, 3)));
        }
Esempio n. 8
0
        private static void AddReward(Player player, QuestReward reward)
        {
            switch (reward.RewardType)
            {
            case QuestRewardType.Attribute:
                var attribute = player.SelectedCharacter !.Attributes.FirstOrDefault(a => a.Definition == reward.AttributeReward);
                if (attribute is null)
                {
                    attribute = player.PersistenceContext.CreateNew <StatAttribute>(reward.AttributeReward, 0);
                    player.SelectedCharacter.Attributes.Add(attribute);
                }

                attribute.Value += reward.Value;

                player.ViewPlugIns.GetPlugIn <ILegacyQuestRewardPlugIn>()?.Show(player, QuestRewardType.Attribute, reward.Value, attribute.Definition);
                break;

            case QuestRewardType.Item:
                var item = player.PersistenceContext.CreateNew <Item>();
                item.AssignValues(reward.ItemReward ?? throw new InvalidOperationException($"Reward {reward.GetId()} is defined as item reward, but has no item assigned"));
                if (player.Inventory !.AddItem(item))
                {
                    player.ViewPlugIns.GetPlugIn <IItemAppearPlugIn>()?.ItemAppear(item);
                }
                else
                {
                    player.CurrentMap?.Add(new DroppedItem(item, player.Position, player.CurrentMap, player, player.GetAsEnumerable()));
                }

                break;
Esempio n. 9
0
 public void AddReward(string questId, QuestReward reward)
 {
     if (!currentEntries.TryGetValue(questId, out QuestsTrackerEntry entry))
     {
         return;
     }
     entry.AddRewardToGive(reward);
 }
Esempio n. 10
0
    public static void SendRewardObtained(QuestModel quest, QuestReward reward)
    {
        var data = new Dictionary <string, string>();

        FillQuestData(data, quest);
        FillRewardData(data, reward);
        GenericAnalytics.SendAnalytic(REWARD_OBTAINED, data);
    }
Esempio n. 11
0
        public void ShowRewardObtained(QuestReward reward)
        {
            var questNotification = Instantiate(rewardObtainedPrefab, transform).GetComponent <QuestNotification_RewardObtained>();

            questNotification.Populate(reward);
            questNotification.gameObject.SetActive(false);
            notificationsQueue.Enqueue(questNotification);
        }
Esempio n. 12
0
    public void ReadXmlPrototype(XmlTextReader reader_parent)
    {
        Name    = reader_parent.GetAttribute("Name");
        Goals   = new List <QuestGoal>();
        Rewards = new List <QuestReward>();
        PreRequiredCompletedQuest = new List <string>();

        XmlReader reader = reader_parent.ReadSubtree();

        while (reader.Read())
        {
            switch (reader.Name)
            {
            case "Description":
                reader.Read();
                Description = reader.ReadContentAsString();
                break;

            case "PreRequiredCompletedQuests":
                XmlReader subReader = reader.ReadSubtree();

                while (subReader.Read())
                {
                    if (subReader.Name == "PreRequiredCompletedQuest")
                    {
                        PreRequiredCompletedQuest.Add(subReader.GetAttribute("Name"));
                    }
                }
                break;

            case "Goals":
                XmlReader goals_reader = reader.ReadSubtree();
                while (goals_reader.Read())
                {
                    if (goals_reader.Name == "Goal")
                    {
                        QuestGoal goal = new QuestGoal();
                        goal.ReadXmlPrototype(goals_reader);
                        Goals.Add(goal);
                    }
                }
                break;

            case "Rewards":
                XmlReader reward_reader = reader.ReadSubtree();
                while (reward_reader.Read())
                {
                    if (reward_reader.Name == "Reward")
                    {
                        QuestReward reward = new QuestReward();
                        reward.ReadXmlPrototype(reward_reader);
                        Rewards.Add(reward);
                    }
                }
                break;
            }
        }
    }
Esempio n. 13
0
 public QuestData(int ID, Quest quest, string name, string Contents, QuestReward reward, Current current)
 {
     QuestID       = ID;
     this.quest    = quest;
     QuestName     = name;
     QuestContents = Contents;
     Reward        = reward;
     this.current  = current;
 }
Esempio n. 14
0
        public void CreateQueustLog(QuestReward reward)
        {
            var logs    = _dataRepository.GetLogs();
            var logText = reward.ToString();
            var newLog  = new Log(LogTypeEnum.Quest, logText);

            logs.Insert(0, newLog);
            _dataRepository.SaveToFile(logs);
        }
Esempio n. 15
0
        public override void Handle(GameSession session, PacketReader packet) // TODO: Refactor when DB is implemented
        {
            QuestMode mode = (QuestMode)packet.ReadByte();

            switch (mode)
            {
            case QuestMode.AcceptQuest:
            {
                int questid  = packet.ReadInt();
                int objectid = packet.ReadInt();
                session.Send(QuestPacket.AcceptQuest(questid));
                break;
            }

            case QuestMode.CompleteQuest:
            {
                int questid  = packet.ReadInt();
                int objectid = packet.ReadInt();
                session.Send(QuestPacket.CompleteQuest(questid));
                QuestReward quest = QuestMetadataStorage.GetMetadata(questid).Reward;
                session.Player.Levels.GainExp(quest.Exp);
                session.Player.Wallet.Meso.Modify(quest.Money);
                break;
            }

            case QuestMode.ExplorationGoals:
                List <QuestMetadata> list = new List <QuestMetadata>();

                int listSize = packet.ReadInt();

                for (int i = 0; i < listSize; i++)
                {
                    list.Add(QuestMetadataStorage.GetMetadata(packet.ReadInt()));
                }

                session.Send(QuestPacket.SendQuests(list));
                break;

            case QuestMode.CompleteNavigator:
                int questId = packet.ReadInt();

                foreach (QuestRewardItem item in QuestMetadataStorage.GetMetadata(questId).RewardItem)
                {
                    InventoryController.Add(session, new Types.Item(item.Code), true);
                }

                session.Send(QuestPacket.CompleteQuest(questId));
                break;

            default:
                IPacketHandler <GameSession> .LogUnknownMode(mode);

                break;
            }
        }
Esempio n. 16
0
        public string QuestCompleted(int nID, QuestReward reward, bool bGoldReward, bool bMBReward)
        {
            Quest quest = Data.Singleton.Quests.FirstOrDefault(obj => obj.QuestID == nID);

            Bitmap result = new Bitmap(350, 120);

            using (Graphics g = Graphics.FromImage(result))
                using (StringFormat sf = new StringFormat())
                    using (SolidBrush b = new SolidBrush(Color.Black))
                        using (SolidBrush b2 = new SolidBrush(m_arQuestColors[1]))
                        {
                            g.Clear(Color.FromArgb(240, 240, 240));
                            g.FillRectangle(b2, new Rectangle(0, 0, 8, 120));

                            g.DrawImage(AddIcons[2], 10, 15);

                            // Text
                            using (Font f = new Font(FontCollection.Families[0], 14, FontStyle.Bold))
                                g.DrawString(quest.Name, f, b, new Rectangle(104, 14, 250, 20), sf);

                            using (Font f = new Font(FontCollection.Families[0], 12, FontStyle.Regular))
                                g.DrawString(quest.Description, f, b, new Rectangle(105, 34, 250, 20), sf);

                            using (Font f = new Font(FontCollection.Families[0], 16, FontStyle.Regular))
                            {
                                // XP
                                g.DrawString("+" + reward.XP.ToString() + "XP", f, b, new Rectangle(105, 60, 200, 25));

                                // MONEY
                                g.DrawImage(Icons[0], new Rectangle(190, 60, 25, 25));

                                if (bGoldReward)
                                {
                                    g.DrawString(reward.Gold.ToString(), f, b, new Rectangle(215, 60, 215, 25));
                                }
                                else
                                {
                                    g.DrawString("0", f, b, new Rectangle(215, 60, 215, 25));
                                }

                                // MYSTERY BOX
                                if (bMBReward)
                                {
                                    g.DrawImage(Items[12], new Rectangle(265, 52, 40, 40));
                                }
                            }
                        }

            Random rnd = new Random();
            int    x   = rnd.Next(100);

            result.Save(Path.Combine(FilePath, x + "QuestCompleted.png"), ImageFormat.Png);
            return(x + "QuestCompleted.png");
        }
Esempio n. 17
0
    private static void FillRewardData(Dictionary <string, string> data, QuestReward reward)
    {
        if (reward == null)
        {
            return;
        }

        data.Add("reward_id", reward.id);
        data.Add("reward_name", reward.name);
        data.Add("reward_type", reward.type);
    }
Esempio n. 18
0
 //跑腿任务
 public Quest(int id, string name, string des, QuestType questType, int npcid, QuestReward questRewards, int startnpcid)
 {
     ID           = id;
     Name         = name;
     Des          = des;
     Questtype    = questType;
     NPCID        = npcid;
     QuestRewards = questRewards;
     StartNPCID   = startnpcid;
     SetTypeIcon();
 }
Esempio n. 19
0
 //得到物品任务
 public Quest(int id, string name, string des, QuestType questType, int npcid, QuestReward questRewards, int itemid, int count)
 {
     ID           = id;
     Name         = name;
     Des          = des;
     Questtype    = questType;
     NPCID        = npcid;
     QuestRewards = questRewards;
     ItemID       = itemid;
     Count        = count;
     SetTypeIcon();
 }
Esempio n. 20
0
 //杀敌任务
 public Quest(int id, string name, string des, QuestType questType, int npcid, int enemyid, int killcount, QuestReward questRewards)
 {
     ID           = id;
     Name         = name;
     Des          = des;
     Questtype    = questType;
     NPCID        = npcid;
     QuestRewards = questRewards;
     SetTypeIcon();
     EnemyID   = enemyid;
     KillCount = killcount;
 }
Esempio n. 21
0
 public Quest(int id, string name, string des, QuestType questType, int npcid, QuestReward questRewards)
 {
     ID           = id;
     Name         = name;
     Des          = des;
     Questtype    = questType;
     NPCID        = npcid;
     QuestRewards = questRewards;
     SetTypeIcon();
     Queststatus   = QuestStatus.None;
     CurrentStatus = Queststatus;
 }
Esempio n. 22
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
         //DontDestroyOnLoad(gameObject);
     }
     else
     {
         Destroy(gameObject);
     }
     text = GetComponent <TextMeshProUGUI>();
 }
Esempio n. 23
0
 public SpShowDialog(Npc npc, int stage, List <DialogButton> buttons, int dialogId, int special1, int special2, int page, int dialogUid, Quest quest = null, QuestReward reward = null)
 {
     Npc       = npc;
     Stage     = stage;
     Buttons   = buttons;
     DialogUid = dialogUid;
     DialogId  = dialogId;
     Special1  = special1;
     Special2  = special2;
     Page      = page;
     Quest     = quest;
     Reward    = reward;
 }
Esempio n. 24
0
 public void SelectReward(QuestReward reward)
 {
     if (_questState == QuestState.Finished)
     {
         if (_rewardSelect.Contains(reward))
         {
             _rewardSelected = reward;
         }
         else
         {
             throw new System.Exception("Selected reward is not available");
         }
     }
 }
Esempio n. 25
0
    public void ParseQuestInfo()
    {
        QuestList = new List <Quest>();
        TextAsset  QuestText  = Resources.Load <TextAsset>("Json/QuestsInfo");
        string     questsJson = QuestText.text;
        JSONObject j          = new JSONObject(questsJson);

        foreach (JSONObject temp in j.list)
        {
            int    id    = (int)temp["id"].n;
            string name  = temp["name"].str;
            string des   = temp["des"].str;
            int    npcid = (int)temp["npcid"].n;

            JSONObject      j2          = temp["reward"];
            int             coin        = (int)j2["coin"].n;
            int             exp         = (int)j2["exp"].n;
            QuestReward     questReward = new QuestReward(coin, exp);
            Quest.QuestType type        = (Quest.QuestType)System.Enum.Parse(typeof(Quest.QuestType), temp["type"].str);
            Quest           quest       = null;
            switch (type)
            {
            case Quest.QuestType.Combat:
                int enemyid   = (int)temp["enemyid"].n;
                int killcount = (int)temp["killcount"].n;
                quest = new Quest(id, name, des, type, npcid, enemyid, killcount, questReward);
                break;

            case Quest.QuestType.Talk:
                int endnpcid = (int)temp["startnpcid"].n;
                quest = new Quest(id, name, des, type, npcid, questReward, endnpcid);
                break;

            case Quest.QuestType.GetItem:
                int itemid = (int)temp["itemid"].n;
                int count  = (int)temp["count"].n;
                quest = new Quest(id, name, des, type, npcid, questReward, itemid, count);
                break;

            case Quest.QuestType.Work:
                quest = new Quest(id, name, des, type, npcid, questReward);
                break;
            }


            QuestList.Add(quest);
        }
    }
Esempio n. 26
0
        public static string GetReward(this QuestRewardType type, QuestReward info)
        {
            var rewardKey = "quest_reward_" + Convert.ToInt32(type);

            switch (type)
            {
            case QuestRewardType.AvatarClothing:
            case QuestRewardType.Quest:
                return(Translator.Instance.Translate(rewardKey));

            case QuestRewardType.Candy:
                var name = Translator.Instance.GetPokemonName(info.Ditto ? 132 : info.PokemonId);
                return(Translator.Instance.Translate(rewardKey, info.Amount, name));

            case QuestRewardType.Experience:
                return(Translator.Instance.Translate(rewardKey, info.Amount));

            case QuestRewardType.Item:
                var itemName = Translator.Instance.GetItem(info.Item);
                return(Translator.Instance.Translate(rewardKey, info.Amount, itemName));

            case QuestRewardType.PokemonEncounter:
                var formName = info.FormId > 0 ? Translator.Instance.GetFormName(info.FormId) : null;
                var pkmnName = (info.Shiny ? $"**SHINY** " : "") + Translator.Instance.GetPokemonName(info.Ditto ? 132 : info.PokemonId);
                return($"{pkmnName} {formName}");

            case QuestRewardType.Stardust:
                return(Translator.Instance.Translate(rewardKey, info.Amount));

            case QuestRewardType.MegaResource:
                return(Translator.Instance.Translate(rewardKey, info.PokemonId, info.Amount));

            case QuestRewardType.XlCandy:     // TODO: By PokemonId?
                return(Translator.Instance.Translate(rewardKey, info.Amount));

            case QuestRewardType.Sticker:
                return(Translator.Instance.Translate(rewardKey, info.StickerId, info.Amount));

            case QuestRewardType.Pokecoin:
                return(Translator.Instance.Translate(rewardKey, info.Amount));

            case QuestRewardType.LevelCap:
                return(type.ToString());
            }

            return("Unknown");
        }
Esempio n. 27
0
        private void btnAddReward_Click(object sender, EventArgs e)
        {
            ListViewItem lvi = lvSteps.SelectedItems[0];
            QuestStep qs = (QuestStep)lvi.Tag;

            // Create reward
            QuestReward qr = new QuestReward((byte)Math.Max(cbRewardType.SelectedIndex, 0), 0);
            qr.New = true;

            // Add to the step
            qs.Rewards.Add(qr);

            // Add to the display
            AddRewardToDisplay(qr);

            SetDirty(true);
        }
    internal IEnumerator QuestManageCycle()
    {
        if (mode == 0)
        {
            SaveEmptyTree();
            yield break;
        }
        // load all quests in game from files.
        LoadQuestsFromFiles();

        while (true)
        {
            // load proper set
            GameManager.Instance.quests.SetNextSetOfQuests();

            // load quests on ui
            GameManager.Instance.ui.ShowQuestChoices(GameManager.Instance.quests.ActiveQuestSet);

            // wait ui input, then close ui
            while (!GameManager.Instance.ui.anySelectedQuest)
            {
                yield return(null);
            }
            GameManager.Instance.ui.ConsumeSelectedQuest();
            GameManager.Instance.ui.HideQuestUI();

            // start quest and for it to end
            QuestReward reward = GameManager.Instance.quests.ActiveQuest.reward;
            GameManager.Instance.quests.StartWaves();
            yield return(null);

            while (GameManager.Instance.quests.AnyQuest)
            {
                yield return(null);
            }

            // apply quest results
            // temporary solution
            GameManager.Instance.station.BuildNextPiece(GameManager.Instance.station.NextAvaliablePiece());
            //reward.Apply(GameManager.Instance.station.NextBuildPos);

            Debug.Log("[QUEST] current quest ended");
            yield return(null);
        }
    }
Esempio n. 29
0
        public static bool ToQuestReward(QuestRewardDTO input, QuestReward output)
        {
            if (input == null)
            {
                return(false);
            }

            output.QuestRewardId = input.QuestRewardId;
            output.RewardType    = input.RewardType;
            output.Data          = input.Data;
            output.Design        = input.Design;
            output.Rarity        = input.Rarity;
            output.Upgrade       = input.Upgrade;
            output.Amount        = input.Amount;
            output.QuestId       = input.QuestId;

            return(true);
        }
Esempio n. 30
0
        public Tbl_QuestReward_Record(XmlNode mainNode)
        {
            try
            {
                m_Reward = new QuestReward();

                foreach (XmlNode node in mainNode.ChildNodes)
                {
                    QuestReward.LoadFromXml(m_Reward, node);
                }
            }

            catch (System.Exception e)
            {

                System.Diagnostics.Trace.WriteLine(e.Message);
            }
        }
Esempio n. 31
0
 public QuestItem(int id, string releaseNpc, int overNpc, string questName, string questDescr, string[] questDialogueNpc, string[] questDialoguePlayer, string unFinished, string finished, QuestNPC[] questTalkNpc, bool questAccept, bool questState, bool questSubmit, QuestEnemy[] questKillEnemy, Quest_Item[] questNeedItem, QuestReward questRewardItem)
 {
     this.id                  = id;
     this.releaseNpc          = releaseNpc;
     this.overNpc             = overNpc;
     this.questName           = questName;
     this.questDescr          = questDescr;
     this.questDialogueNpc    = questDialogueNpc;
     this.questDialoguePlayer = questDialoguePlayer;
     this.unFinished          = unFinished;
     this.finished            = finished;
     this.questTalkNpc        = questTalkNpc;
     this.questAccept         = questAccept;
     this.questState          = questState;
     this.questSubmit         = questSubmit;
     this.questKillEnemy      = questKillEnemy;
     this.questNeedItem       = questNeedItem;
     this.questRewardItem     = questRewardItem;
 }
Esempio n. 32
0
        public void SetUp()
        {
            QuestModel questMock = new QuestModel {
                id = MOCK_QUEST_ID, status = QuestsLiterals.Status.ON_GOING
            };
            QuestSection sectionMock = new QuestSection {
                id = MOCK_SECTION_ID
            };
            QuestTask taskMock = new QuestTask {
                id = MOCK_TASK_ID
            };
            QuestReward rewardMock = new QuestReward {
                id = MOCK_REWARD_ID
            };

            sectionMock.tasks  = new [] { taskMock };
            questMock.sections = new [] { sectionMock };
            questMock.rewards  = new [] { rewardMock };
            DataStore.i.Quests.quests.Set(new []
Esempio n. 33
0
 void AddRewardToDisplay(QuestReward qr)
 {
     ListViewItem rvi = lvRewards.Items.Add(qr.Type.ToString());
     rvi.SubItems.Add(RewardContextString(qr));
     rvi.Tag = qr;
 }
Esempio n. 34
0
 public Quest(ushort type, XElement elem)
 {
     XElement n;
     QuestType = type;
     QuestId = elem.Attribute("id").Value;
     if ((n = elem.Element("LevelReq")) != null)
         LevelRequirement = Utils.FromString(n.Value);
     else
         LevelRequirement = 0;
     QuestRequirement = new List<string>();
     foreach (var i in elem.Elements("QuestReq"))
         QuestRequirement.Add(i.Value);
     Objectives = new List<QuestObjective>();
     foreach (var i in elem.Elements("Objective"))
         Objectives.Add(new QuestObjective(i));
     Rewards = new QuestReward();
     if ((n = elem.Element("Reward")) != null)
         Rewards.FromXML(n);
 }
Esempio n. 35
0
 void SetRewardContext(QuestReward qr)
 {
     switch (qr.Type)
     {
         case QuestReward.RewardType.Gold:
         case QuestReward.RewardType.Exp:
         case QuestReward.RewardType.Fame:
             cbRewardContext.Visible = false;
             tbRewardContext.Enabled = true;
             tbRewardContext.Text = qr.Context.ToString();
             break;
         case QuestReward.RewardType.Item:
             cbRewardContext.Enabled = true;
             cbRewardContext.Visible = true;
             cbRewardContext.Items.Clear();
             foreach (NamedItemTemplate nit in _items.Values)
                 cbRewardContext.Items.Add(nit);
             if (_items.ContainsKey(qr.Context))
                 cbRewardContext.SelectedItem = _items[qr.Context];
             else
                 cbRewardContext.SelectedItem = null;
             break;
         case QuestReward.RewardType.Teleport:
             cbRewardContext.Enabled = true;
             cbRewardContext.Visible = true;
             cbRewardContext.Items.Clear();
             foreach( Location loc in _locations.Values )
                 cbRewardContext.Items.Add(loc);
             if( _locations.ContainsKey(qr.Context) )
                 cbRewardContext.SelectedItem = _locations[qr.Context];
             else
                 cbRewardContext.SelectedItem = null;
             break;
         case QuestReward.RewardType.Skill:
             // TODO: Implement skill
             cbRewardContext.Visible = false;
             tbRewardContext.Enabled = true;
             tbRewardContext.Text = qr.Context.ToString();
             break;
     }
 }
Esempio n. 36
0
        string RewardContextString(QuestReward qr)
        {
            string str = "";
            switch (qr.Type)
            {
                case QuestReward.RewardType.Gold:
                case QuestReward.RewardType.Exp:
                case QuestReward.RewardType.Fame:
                    str = qr.Context.ToString();
                    break;
                case QuestReward.RewardType.Item:
                    if (_items.ContainsKey(qr.Context))
                    {
                        NamedItemTemplate nit = _items[qr.Context];
                        str = nit.ToString();
                    }
                    else
                        str = qr.Context.ToString();
                    break;
                case QuestReward.RewardType.Teleport:
                    if (_locations.ContainsKey(qr.Context))
                    {
                        Location loc = _locations[qr.Context];
                        str = loc.ToString();
                    }
                    else
                        str = qr.Context.ToString();
                    break;
                case QuestReward.RewardType.Skill:
                    // TODO: Need to implement skills
                    str = qr.Context.ToString();
                    break;
            }

            return str;
        }