Пример #1
0
        private Quest[] CreateNewQuests(Quest[] oldQuests)
        {
            string name = "A Royal Pain in my Ass";
            string desc = "A Royal Pain in my Ass";
            //QuestLog.Log("[Questing Update | Quests]: " + typeof(Quest).GetField("Description", BindingFlags.NonPublic | BindingFlags.Instance));
            GameObject  baseObject = new GameObject();
            PlayerQuest baseQuest  = baseObject.AddComponent <PlayerQuest>();

            baseQuest.name = "Q73_ARoyalPainInMyAss";
            QuestDescription description = ScriptableObject.CreateInstance <QuestDescription>();

            LocalizedString nameStr = name;
            LocalizedString descStr = desc;

            Initialize(ref nameStr);
            Initialize(ref descStr);

            typeof(QuestDescription).GetField("m_description", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(description, descStr);
            typeof(QuestDescription).GetField("m_name", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(description, nameStr);
            typeof(QuestDescription).GetField("m_icon", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(description, Sprite2(path + "Schematics/NullSchematic.png"));

            typeof(Quest).GetField("m_priority", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(baseQuest, 0);
            typeof(Quest).GetField("m_description", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(baseQuest, description);
            typeof(Quest).GetField("m_isEvent", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(baseQuest, false);
            alteredQuests = oldQuests;
            List <Quest> quests = alteredQuests.ToList();

            quests.Add(baseQuest);
            alteredQuests = quests.ToArray();
            return(alteredQuests);
            //throw new NotImplementedException();
        }
Пример #2
0
 public void SetQuestText(QuestDescription desc, QuestData data)
 {
     QuestText       = CreateQuestText(data);
     SwordQuestText  = swordQuestDesc.ToString();
     QuestTitle      = desc.Title;
     QuestDifficulty = desc.Difficulty.ToString();
 }
    public void Initialize(QuestDescription.Param qd, bool bClearedAlready)
    {
        m_qd = qd;
        m_questName.label.text = string.Format (m_episodeFormat, qd.episodeNum, qd.questName);

        //		m_item = e;
        //		m_itemName.label.text = m_item.itemName;
        //		m_equipLabel.setEnabled(isEquipped);
        //		m_itemGraphic.image = GUIManager.GetManager().GetIconGraphicOfItem(e);
    }
Пример #4
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
         //DontDestroyOnLoad(gameObject);
     }
     else
     {
         Destroy(gameObject);
     }
     text = GetComponent <TextMeshProUGUI>();
 }
Пример #5
0
 public BaseQuest(string title, string description, Difficulty difficulty)
 {
     Description = new QuestDescription(title, description, difficulty);
 }
Пример #6
0
        /// <summary>
        /// Handles the Click event of the btnQuestSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void btnQuestSave_Click(object sender, EventArgs e)
        {
            var v = pgQuest.SelectedObject as EditorQuest;

            if (v == null)
            {
                return;
            }

            // Description
            var qdc = (QuestDescriptionCollection)QuestDescriptionCollection.Create(ContentPaths.Dev);
            var qd  = qdc[v.ID] as QuestDescription;

            if (qd == null)
            {
                // Remove an existing IQuestDescription that is not of type QuestDescription, so we can write to it
                var rawQD = qdc[v.ID];
                if (rawQD != null)
                {
                    qdc.Remove(rawQD);
                }

                // Add the new QuestDescription type
                qd = new QuestDescription {
                    QuestID = v.ID
                };
                qdc.Add(qd);
            }

            qd.Name        = v.Name;
            qd.Description = v.Description;

            qdc.Save();

            // Main quest table values
            _dbController.GetQuery <InsertUpdateQuestQuery>().Execute(v);

            // DELETE then INSERT to ensure everything updates correctly
            // You cannot just simply delete the quest as this will
            // delete all links in other tables due to the DB key relationship

            // Required items to start/finish
            _dbController.GetQuery <DeleteQuestRequireStartItemQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRequireStartItemQuery>().Execute(v.ID, v.StartItems.Select(x => (KeyValuePair <ItemTemplateID, byte>)x));
            _dbController.GetQuery <DeleteQuestRequireFinishItemQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRequireFinishItemQuery>().Execute(v.ID, v.FinishItems.Select(x => (KeyValuePair <ItemTemplateID, byte>)x));

            // Required quests to start/finish
            _dbController.GetQuery <DeleteQuestRequireStartQuestQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRequireStartQuestQuery>().Execute(v.ID, v.StartQuests);
            _dbController.GetQuery <DeleteQuestRequireFinishQuestQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRequireFinishQuestQuery>().Execute(v.ID, v.FinishQuests);

            // Other requirements
            _dbController.GetQuery <DeleteQuestRequireKillQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRequireKillQuery>().Execute(v.ID, v.Kills.Select(x => (KeyValuePair <CharacterTemplateID, ushort>)x));

            // Rewards
            _dbController.GetQuery <DeleteQuestRewardItemQuery>().Execute(v.ID);
            _dbController.GetQuery <InsertQuestRewardItemQuery>().Execute(v.ID, v.RewardItems.Select(x => (KeyValuePair <ItemTemplateID, byte>)x));

            SetQuest(v.ID, false);

            QuestManager.Instance.Reload(v.ID);

            pgQuest.SelectedObject = null;
            pgQuest.SelectedObject = v;

            MessageBox.Show("Quest ID `" + v.ID + "` successfully saved!");
        }