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(); }
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); }
private void Awake() { if (Instance == null) { Instance = this; //DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } text = GetComponent <TextMeshProUGUI>(); }
public BaseQuest(string title, string description, Difficulty difficulty) { Description = new QuestDescription(title, description, difficulty); }
/// <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!"); }