private void cbCompTarget_SelectedIndexChanged(object sender, EventArgs e) { if (cbCompTarget.SelectedItem != null) { ListViewItem lvi = lvSteps.SelectedItems[0]; QuestStep qs = (QuestStep)lvi.Tag; switch (qs.CompType) { case QuestStep.CompletionType.KillMonster: case QuestStep.CompletionType.GoToLocation: case QuestStep.CompletionType.CollectItem: case QuestStep.CompletionType.ReachLevel: break; case QuestStep.CompletionType.TalkToNPC: NPC npc = (NPC)cbCompTarget.SelectedItem; qs.CompTargetID = npc.ID; lvi.SubItems[1].Text = StepContextString(qs); SetDirty(true); break; case QuestStep.CompletionType.WearItem: NamedItemTemplate nit = (NamedItemTemplate)cbCompTarget.SelectedItem; qs.CompTargetID = nit.Template.ID; lvi.SubItems[1].Text = StepContextString(qs); SetDirty(true); break; default: throw new NotImplementedException(); } } }
string StepContextString(QuestStep qs) { string str = ""; switch (qs.CompType) { case QuestStep.CompletionType.KillMonster: case QuestStep.CompletionType.GoToLocation: case QuestStep.CompletionType.CollectItem: str = qs.CompTargetID.ToString(); break; case QuestStep.CompletionType.ReachLevel: break; // Empty case QuestStep.CompletionType.TalkToNPC: str = _npcs.ContainsKey(qs.CompTargetID) ? _npcs[qs.CompTargetID].ToString() : "Unknown"; break; case QuestStep.CompletionType.WearItem: if (_items.ContainsKey(qs.CompTargetID)) { NamedItemTemplate nit = _items[qs.CompTargetID]; str = nit.ToString(); } else { str = qs.CompTargetID.ToString(); } break; } return(str); }
private void cbRewardContext_SelectedIndexChanged(object sender, EventArgs e) { if (cbRewardContext.SelectedItem != null && lvRewards.SelectedItems.Count > 0) { ListViewItem lvi = lvRewards.SelectedItems[0]; QuestReward qr = (QuestReward)lvi.Tag; switch (qr.Type) { case QuestReward.RewardType.Teleport: Location loc = (Location)cbRewardContext.SelectedItem; qr.Context = loc.ID; lvi.SubItems[1].Text = loc.ToString(); SetDirty(true); break; case QuestReward.RewardType.Skill: // TODO: Implement break; case QuestReward.RewardType.Item: NamedItemTemplate nit = (NamedItemTemplate)cbRewardContext.SelectedItem; qr.Context = nit.Template.ID; lvi.SubItems[1].Text = RewardContextString(qr); SetDirty(true); break; } } }
void SelectCompTarget(QuestStep qs) { tbCompletionTarget.Enabled = false; cbCompTarget.Visible = false; tbCompletionCount.Enabled = false; tbCompletionCount.Text = qs.CompCount.ToString(); switch (qs.CompType) { case QuestStep.CompletionType.KillMonster: // TODO: Monsters tbCompletionCount.Enabled = true; tbCompletionTarget.Enabled = true; tbCompletionTarget.Text = qs.CompTargetID.ToString(); break; case QuestStep.CompletionType.GoToLocation: // TODO: Locations tbCompletionTarget.Enabled = true; tbCompletionTarget.Text = qs.CompTargetID.ToString(); break; case QuestStep.CompletionType.CollectItem: // TODO: Items tbCompletionCount.Enabled = true; tbCompletionTarget.Enabled = true; tbCompletionTarget.Text = qs.CompTargetID.ToString(); break; case QuestStep.CompletionType.ReachLevel: tbCompletionCount.Enabled = true; break; case QuestStep.CompletionType.TalkToNPC: cbCompTarget.Visible = true; cbCompTarget.Items.Clear(); foreach (NPC npc in _npcs.Values) { cbCompTarget.Items.Add(npc); } cbCompTarget.SelectedItem = _npcs.ContainsKey(qs.CompTargetID) ? _npcs[qs.CompTargetID] : null; break; case QuestStep.CompletionType.WearItem: cbCompTarget.Visible = true; cbCompTarget.Items.Clear(); foreach (NamedItemTemplate nit in _items.Values) { cbCompTarget.Items.Add(nit); } cbCompTarget.SelectedItem = null; if (_items.ContainsKey(qs.CompTargetID)) { NamedItemTemplate nit = _items[qs.CompTargetID]; cbCompTarget.SelectedItem = nit; } break; } }
private void QuestDialog_Load(object sender, EventArgs e) { cbCompletionType.DataSource = Enum.GetValues(typeof(QuestStep.CompletionType)); cbRequirementType.DataSource = Enum.GetValues(typeof(QuestRequirement.Type)); cbRewardType.DataSource = Enum.GetValues(typeof(QuestReward.RewardType)); foreach (IntStrID icon in Program.s_npcIcons.Values) { cbIcon.Items.Add(icon); } foreach (IntStrID staticText in Program.s_staticText.Values) { cbStaticText.Items.Add(staticText); } _items = new Dictionary <uint, NamedItemTemplate>(); ItemTemplate[] items = Database.FetchItems(); foreach (ItemTemplate it in items) { NamedItemTemplate named = new NamedItemTemplate(); named.Name = Program.s_items.ContainsKey(it.Model) ? Program.s_items[it.Model] : new IntStrID("Unknown", it.Model); named.Template = it; _items[it.ID] = named; } // Pull all the NPCs NPC[] npcs = Database.FetchNPCs(0); _npcs = new Dictionary <uint, NPC>(); foreach (NPC npc in npcs) { _npcs[npc.ID] = npc; cbQuestGiver.Items.Add(npc); cbStepOwner.Items.Add(npc); } // Pull quests from DB Quest[] quests = Database.FetchQuests(); foreach (Quest q in quests) { AddQuest(q); } Location[] locations = Database.FetchLocations(0); _locations = new Dictionary <uint, Location>(); foreach (Location loc in locations) { _locations[loc.ID] = loc; } SelectQuest(null); btnSave.Enabled = false; }
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); }
private void QuestDialog_Load(object sender, EventArgs e) { cbCompletionType.DataSource = Enum.GetValues(typeof(QuestStep.CompletionType)); cbRequirementType.DataSource = Enum.GetValues(typeof(QuestRequirement.Type)); cbRewardType.DataSource = Enum.GetValues(typeof(QuestReward.RewardType)); foreach (IntStrID icon in Program.s_npcIcons.Values) cbIcon.Items.Add(icon); foreach( IntStrID staticText in Program.s_staticText.Values ) cbStaticText.Items.Add(staticText); _items = new Dictionary<uint, NamedItemTemplate>(); ItemTemplate[] items = Database.FetchItems(); foreach (ItemTemplate it in items) { NamedItemTemplate named = new NamedItemTemplate(); named.Name = Program.s_items.ContainsKey(it.Model) ? Program.s_items[it.Model] : new IntStrID("Unknown", it.Model); named.Template = it; _items[it.ID] = named; } // Pull all the NPCs NPC[] npcs = Database.FetchNPCs(0); _npcs = new Dictionary<uint, NPC>(); foreach (NPC npc in npcs) { _npcs[npc.ID] = npc; cbQuestGiver.Items.Add(npc); cbStepOwner.Items.Add(npc); } // Pull quests from DB Quest[] quests = Database.FetchQuests(); foreach (Quest q in quests) { AddQuest(q); } Location[] locations = Database.FetchLocations(0); _locations = new Dictionary<uint, Location>(); foreach (Location loc in locations) { _locations[loc.ID] = loc; } SelectQuest(null); btnSave.Enabled = false; }