private void SetupFormValues(QuestInProgressCondition condition) { cmbQuestInProgress.SelectedIndex = QuestBase.ListIndex(condition.QuestId); cmbTaskModifier.SelectedIndex = (int)condition.Progress; if (cmbTaskModifier.SelectedIndex == -1) { cmbTaskModifier.SelectedIndex = 0; } if (cmbTaskModifier.SelectedIndex != 0) { //Get Quest Task Here var quest = QuestBase.Get(QuestBase.IdFromList(cmbQuestInProgress.SelectedIndex)); if (quest != null) { for (var i = 0; i < quest.Tasks.Count; i++) { if (quest.Tasks[i].Id == condition.TaskId) { cmbQuestTask.SelectedIndex = i; } } } } }
private void QuestListItem_Clicked(Base sender, ClickedEventArgs arguments) { var questNum = (Guid)((ListBoxRow)sender).UserData; var quest = QuestBase.Get(questNum); if (quest != null) { mSelectedQuest = quest; UpdateSelectedQuest(); } mQuestList.UnselectAll(); }
private void lstQuests_AfterSelect(object sender, TreeViewEventArgs e) { if (mChangingName) { return; } if (lstQuests.SelectedNode == null || lstQuests.SelectedNode.Tag == null) { return; } mEditorItem = QuestBase.Get((Guid)lstQuests.SelectedNode.Tag); UpdateEditor(); }
public static bool MeetsCondition( QuestCompletedCondition condition, Player player, Event eventInstance, QuestBase questBase ) { var questCompleted = QuestBase.Get(condition.QuestId); if (questCompleted != null) { return(player.QuestCompleted(questCompleted)); } return(false); }
public static bool MeetsCondition( QuestInProgressCondition condition, Player player, Event eventInstance, QuestBase questBase ) { var questInProgress = QuestBase.Get(condition.QuestId); if (questInProgress != null) { return(player.QuestInProgress(questInProgress, condition.Progress, condition.TaskId)); } return(false); }
private void cmbQuestInProgress_SelectedIndexChanged(object sender, EventArgs e) { cmbQuestTask.Items.Clear(); var quest = QuestBase.Get(QuestBase.IdFromList(cmbQuestInProgress.SelectedIndex)); if (quest != null) { foreach (var task in quest.Tasks) { cmbQuestTask.Items.Add(task.GetTaskString(Strings.TaskEditor.descriptions)); } if (cmbQuestTask.Items.Count > 0) { cmbQuestTask.SelectedIndex = 0; } } }
private void SaveFormValues(QuestInProgressCondition condition) { condition.QuestId = QuestBase.IdFromList(cmbQuestInProgress.SelectedIndex); condition.Progress = (QuestProgressState)cmbTaskModifier.SelectedIndex; condition.TaskId = Guid.Empty; if (cmbTaskModifier.SelectedIndex != 0) { //Get Quest Task Here var quest = QuestBase.Get(QuestBase.IdFromList(cmbQuestInProgress.SelectedIndex)); if (quest != null) { if (cmbQuestTask.SelectedIndex > -1) { condition.TaskId = quest.Tasks[cmbQuestTask.SelectedIndex].Id; } } } }
public static bool MeetsCondition( CanStartQuestCondition condition, Player player, Event eventInstance, QuestBase questBase ) { var startQuest = QuestBase.Get(condition.QuestId); if (startQuest == questBase) { //We cannot check and see if we meet quest requirements if we are already checking to see if we meet quest requirements :P return(true); } if (startQuest != null) { return(player.CanStartQuest(startQuest)); } return(false); }
private void btnSave_Click(object sender, EventArgs e) { mMyCommand.QuestId = QuestBase.IdFromList(cmbQuests.SelectedIndex); if (cmbQuests.SelectedIndex > -1) { var quest = QuestBase.Get(QuestBase.IdFromList(cmbQuests.SelectedIndex)); if (quest != null) { var i = -1; foreach (var task in quest.Tasks) { i++; if (i == cmbQuestTask.SelectedIndex) { mMyCommand.TaskId = task.Id; } } } } mEventEditor.FinishCommandEdit(); }
private static string GetCommandText(CompleteQuestTaskCommand command, MapInstance map) { var quest = QuestBase.Get(command.QuestId); if (quest != null) { //Try to find task foreach (var task in quest.Tasks) { if (task.Id == command.TaskId) { return(Strings.EventCommandList.completetask.ToString( QuestBase.GetName(command.QuestId), task.GetTaskString(Strings.TaskEditor.descriptions) )); } } } return(Strings.EventCommandList.completetask.ToString( QuestBase.GetName(command.QuestId), Strings.EventCommandList.taskundefined )); }
private void cmbQuests_SelectedIndexChanged(object sender, EventArgs e) { cmbQuestTask.Hide(); lblTask.Hide(); if (cmbQuests.SelectedIndex > -1) { var quest = QuestBase.Get(QuestBase.IdFromList(cmbQuests.SelectedIndex)); if (quest != null) { lblTask.Show(); cmbQuestTask.Show(); cmbQuestTask.Items.Clear(); foreach (var task in quest.Tasks) { cmbQuestTask.Items.Add(task.GetTaskString(Strings.TaskEditor.descriptions)); if (task.Id == mMyCommand.TaskId) { cmbQuestTask.SelectedIndex = cmbQuestTask.Items.Count - 1; } } } } }
public void InitEditor() { var selectedId = Guid.Empty; var folderNodes = new Dictionary <string, TreeNode>(); if (lstQuests.SelectedNode != null && lstQuests.SelectedNode.Tag != null) { selectedId = (Guid)lstQuests.SelectedNode.Tag; } lstQuests.Nodes.Clear(); //Collect folders var mFolders = new List <string>(); foreach (var itm in QuestBase.Lookup) { if (!string.IsNullOrEmpty(((QuestBase)itm.Value).Folder) && !mFolders.Contains(((QuestBase)itm.Value).Folder)) { mFolders.Add(((QuestBase)itm.Value).Folder); if (!mKnownFolders.Contains(((QuestBase)itm.Value).Folder)) { mKnownFolders.Add(((QuestBase)itm.Value).Folder); } } } mFolders.Sort(); mKnownFolders.Sort(); cmbFolder.Items.Clear(); cmbFolder.Items.Add(""); cmbFolder.Items.AddRange(mKnownFolders.ToArray()); lstQuests.Sorted = !btnChronological.Checked; if (!btnChronological.Checked && !CustomSearch()) { foreach (var folder in mFolders) { var node = lstQuests.Nodes.Add(folder); node.ImageIndex = 0; node.SelectedImageIndex = 0; folderNodes.Add(folder, node); } } foreach (var itm in QuestBase.ItemPairs) { var node = new TreeNode(itm.Value); node.Tag = itm.Key; node.ImageIndex = 1; node.SelectedImageIndex = 1; var folder = QuestBase.Get(itm.Key).Folder; if (!string.IsNullOrEmpty(folder) && !btnChronological.Checked && !CustomSearch()) { var folderNode = folderNodes[folder]; folderNode.Nodes.Add(node); if (itm.Key == selectedId) { folderNode.Expand(); } } else { lstQuests.Nodes.Add(node); } if (CustomSearch()) { if (!node.Text.ToLower().Contains(txtSearch.Text.ToLower())) { node.Remove(); } } if (itm.Key == selectedId) { lstQuests.SelectedNode = node; } } var selectedNode = lstQuests.SelectedNode; if (!btnChronological.Checked) { lstQuests.Sort(); } lstQuests.SelectedNode = selectedNode; foreach (var node in mExpandedFolders) { if (folderNodes.ContainsKey(node)) { folderNodes[node].Expand(); } } }
public void Draw() { if (Globals.Me != null && PlayerBox?.MyEntity != Globals.Me) { PlayerBox?.SetEntity(Globals.Me); } mChatBox?.Update(); GameMenu?.Update(mShouldUpdateQuestLog); mShouldUpdateQuestLog = false; Hotbar?.Update(); mDebugMenu?.Update(); EscapeMenu.Update(); PlayerBox?.Update(); mMapItemWindow.Update(); AnnouncementWindow?.Update(); mPictureWindow?.Update(); if (Globals.QuestOffers.Count > 0) { var quest = QuestBase.Get(Globals.QuestOffers[0]); mQuestOfferWindow.Update(quest); } else { mQuestOfferWindow.Hide(); } if (Globals.Picture != null) { if (mPictureWindow.Picture != Globals.Picture.Picture || mPictureWindow.Size != Globals.Picture.Size || mPictureWindow.Clickable != Globals.Picture.Clickable) { mPictureWindow.Setup(Globals.Picture.Picture, Globals.Picture.Size, Globals.Picture.Clickable); } } else { if (mPictureWindow != null) { mPictureWindow.Close(); } } mEventWindow?.Update(); //Admin window update if (mShouldOpenAdminWindow) { OpenAdminWindow(); } //Shop Update if (mShouldOpenShop) { OpenShop(); GameMenu.OpenInventory(); } if (mShopWindow != null && (!mShopWindow.IsVisible() || mShouldCloseShop)) { CloseShop(); } mShouldCloseShop = false; //Bank Update if (mShouldOpenBank) { OpenBank(); GameMenu.OpenInventory(); } if (mBankWindow != null) { if (!mBankWindow.IsVisible() || mShouldCloseBank) { CloseBank(); } else { mBankWindow.Update(); } } mShouldCloseBank = false; //Bag Update if (mShouldOpenBag) { OpenBag(); } if (mBagWindow != null) { if (!mBagWindow.IsVisible() || mShouldCloseBag) { CloseBagWindow(); } else { mBagWindow.Update(); } } mShouldCloseBag = false; //Crafting station update if (mShouldOpenCraftingTable) { OpenCraftingTable(); GameMenu.OpenInventory(); } if (mCraftingWindow != null) { if (!mCraftingWindow.IsVisible() || mShouldCloseCraftingTable) { CloseCraftingTable(); } else { mCraftingWindow.Update(); } } mShouldCloseCraftingTable = false; //Trading update if (mShouldOpenTrading) { OpenTrading(); GameMenu.OpenInventory(); } if (mTradingWindow != null) { if (mShouldCloseTrading) { CloseTrading(); mShouldCloseTrading = false; } else { if (!mTradingWindow.IsVisible()) { CloseTrading(); } else { mTradingWindow.Update(); } } } if (mShouldUpdateFriendsList) { GameMenu.UpdateFriendsList(); mShouldUpdateFriendsList = false; } if (mShouldUpdateGuildList) { GameMenu.UpdateGuildList(); mShouldUpdateGuildList = false; } if (mShouldHideGuildWindow) { GameMenu.HideGuildWindow(); mShouldHideGuildWindow = false; } mShouldCloseTrading = false; if (FocusChat) { mChatBox.Focus(); FocusChat = false; } if (UnfocusChat) { mChatBox.UnFocus(); UnfocusChat = false; } GameCanvas.RenderCanvas(); }
//GameObjectPacket private static void HandlePacket(GameObjectPacket packet) { var id = packet.Id; var deleted = packet.Deleted; var json = ""; if (!packet.Deleted) { json = packet.Data; } switch (packet.Type) { case GameObjectType.Animation: if (deleted) { var anim = AnimationBase.Get(id); anim.Delete(); } else { var anim = new AnimationBase(id); anim.Load(json); try { AnimationBase.Lookup.Set(id, anim); } catch (Exception exception) { Log.Error($"Another mystery NPE. [Lookup={AnimationBase.Lookup}]"); if (exception.InnerException != null) { Log.Error(exception.InnerException); } Log.Error(exception); Log.Error($"{nameof(id)}={id},{nameof(anim)}={anim}"); throw; } } break; case GameObjectType.Class: if (deleted) { var cls = ClassBase.Get(id); cls.Delete(); } else { var cls = new ClassBase(id); cls.Load(json); ClassBase.Lookup.Set(id, cls); } break; case GameObjectType.Item: if (deleted) { var itm = ItemBase.Get(id); itm.Delete(); } else { var itm = new ItemBase(id); itm.Load(json); ItemBase.Lookup.Set(id, itm); } break; case GameObjectType.Npc: if (deleted) { var npc = NpcBase.Get(id); npc.Delete(); } else { var npc = new NpcBase(id); npc.Load(json); NpcBase.Lookup.Set(id, npc); } break; case GameObjectType.Projectile: if (deleted) { var proj = ProjectileBase.Get(id); proj.Delete(); } else { var proj = new ProjectileBase(id); proj.Load(json); ProjectileBase.Lookup.Set(id, proj); } break; case GameObjectType.Quest: if (deleted) { var qst = QuestBase.Get(id); qst.Delete(); } else { var qst = new QuestBase(id); qst.Load(json); foreach (var tsk in qst.Tasks) { qst.OriginalTaskEventIds.Add(tsk.Id, tsk.CompletionEventId); } QuestBase.Lookup.Set(id, qst); } break; case GameObjectType.Resource: if (deleted) { var res = ResourceBase.Get(id); res.Delete(); } else { var res = new ResourceBase(id); res.Load(json); ResourceBase.Lookup.Set(id, res); } break; case GameObjectType.Shop: if (deleted) { var shp = ShopBase.Get(id); shp.Delete(); } else { var shp = new ShopBase(id); shp.Load(json); ShopBase.Lookup.Set(id, shp); } break; case GameObjectType.Spell: if (deleted) { var spl = SpellBase.Get(id); spl.Delete(); } else { var spl = new SpellBase(id); spl.Load(json); SpellBase.Lookup.Set(id, spl); } break; case GameObjectType.CraftTables: if (deleted) { var cft = CraftingTableBase.Get(id); cft.Delete(); } else { var cft = new CraftingTableBase(id); cft.Load(json); CraftingTableBase.Lookup.Set(id, cft); } break; case GameObjectType.Crafts: if (deleted) { var cft = CraftBase.Get(id); cft.Delete(); } else { var cft = new CraftBase(id); cft.Load(json); CraftBase.Lookup.Set(id, cft); } break; case GameObjectType.Map: //Handled in a different packet break; case GameObjectType.Event: var wasCommon = false; if (deleted) { var evt = EventBase.Get(id); wasCommon = evt.CommonEvent; evt.Delete(); } else { var evt = new EventBase(id); evt.Load(json); wasCommon = evt.CommonEvent; EventBase.Lookup.Set(id, evt); } if (!wasCommon) { return; } break; case GameObjectType.PlayerVariable: if (deleted) { var pvar = PlayerVariableBase.Get(id); pvar.Delete(); } else { var pvar = new PlayerVariableBase(id); pvar.Load(json); PlayerVariableBase.Lookup.Set(id, pvar); } break; case GameObjectType.ServerVariable: if (deleted) { var svar = ServerVariableBase.Get(id); svar.Delete(); } else { var svar = new ServerVariableBase(id); svar.Load(json); ServerVariableBase.Lookup.Set(id, svar); } break; case GameObjectType.Tileset: var obj = new TilesetBase(id); obj.Load(json); TilesetBase.Lookup.Set(id, obj); if (Globals.HasGameData && !packet.AnotherFollowing) { GameContentManager.LoadTilesets(); } break; default: throw new ArgumentOutOfRangeException(); } GameObjectUpdatedDelegate?.Invoke(packet.Type); }
private void AssignEditorItem(Guid id) { mEditorItem = QuestBase.Get(id); UpdateEditor(); }