private void removeAbilityToolStripMenuItem_Click(object sender, EventArgs e) { SkillTreeEntry removeme = (SkillTreeEntry)skillentrylist.SelectedItem; skillentrylist.Items.Remove(removeme); panel1.Refresh(); CommitSkillTree(); }
private void WriteSkillTreeEntry(SkillTreeEntry e) { writer.Write(e.SkillID); writer.Write(e.LearnLevel); writer.Write(e.TrainingLevel); writer.Write(e.MaxLevel); writer.Write(e.ExpBase); writer.Write(e.ExpDelta); writer.Write(e.RequireItemID ?? "null"); writer.Write(e.Column); writer.Write(e.ManualOffset.X); writer.Write(e.ManualOffset.Y); WritePreRequisiteSkills(e.PreRequisiteSkills); }
private void panel1_MouseClick(object sender, MouseEventArgs e) { SkillTreeEntry[] array = new SkillTreeEntry[skillentrylist.Items.Count]; skillentrylist.Items.CopyTo(array, 0); foreach (SkillTreeEntry icon in array) { Microsoft.Xna.Framework.Point p = icon.GetLocation(); Rectangle XX = new Rectangle(p.X, p.Y, 40, 40); if (XX.Contains(new Point(e.X, e.Y))) { skillentrylist.SelectedIndex = (skillentrylist.Items.IndexOf(icon)); } } }
private void EditSkillEntry(SkillTreeEntry entry) { SkillTreeEntryEditor editor = new SkillTreeEntryEditor(this, entry); if (editor.ShowDialog() == DialogResult.OK) { if (skillentrylist.SelectedItems.Count != 1) { return; } skillentrylist.Items[skillentrylist.SelectedIndex] = editor.Entry; CommitSkillTree(); } }
public SkillTreeEntryEditor(MainForm Parent, SkillTreeEntry Entry) { InitializeComponent(); this.Entry = Entry; this.AbilityProvider = Parent; ModularAbility a = Parent.FindAbility(Entry.SkillID); SkillName.Text = a.Name; learnlevel.Value = (decimal)Entry.LearnLevel; column.Value = (decimal)Entry.Column; traininglevel.Value = (decimal)Entry.TrainingLevel; maxlvl.Value = (decimal)Entry.MaxLevel; expbase.Value = (decimal)Entry.ExpBase; expdelta.Value = (decimal)Entry.ExpDelta; requireitemid.Text = Entry.RequireItemID; ReloadReqList(); }
private void panel1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; SkillTreeEntry[] array = new SkillTreeEntry[skillentrylist.Items.Count]; skillentrylist.Items.CopyTo(array, 0); //foreach (SkillTreeEntry entry in currentclass.SkillTree.Entries) foreach (SkillTreeEntry entry in array) { Microsoft.Xna.Framework.Point corner = entry.GetLocation(); corner += new Microsoft.Xna.Framework.Point(SkillTree.ICON_WIDTH / 2, SkillTree.ICON_WIDTH / 2); if (entry.PreRequisiteSkills != null) { foreach (Tuple <string, int> prereq in entry.PreRequisiteSkills) { foreach (SkillTreeEntry preentry in array) { if (preentry.SkillID == prereq.Item1) { Microsoft.Xna.Framework.Point corner2 = preentry.GetLocation(); corner2 += new Microsoft.Xna.Framework.Point(SkillTree.ICON_WIDTH / 2, SkillTree.ICON_WIDTH / 2); g.DrawLine(new Pen(Color.Red, 7), corner.X, corner.Y, corner2.X, corner2.Y); } } } } } //foreach (SkillTreeEntry entry in currentclass.SkillTree.Entries) foreach (SkillTreeEntry entry in array) { ModularAbility a = FindAbility(entry.SkillID); if (a == null) { continue; } Microsoft.Xna.Framework.Point corner = entry.GetLocation(); int IconId = a.Icon; Point iconsource = new Point((IconId % 64) * 32, ((int)(IconId / 64f)) * 32); Rectangle src = new Rectangle(iconsource, new Size(32, 32)); if (entry == skillentrylist.SelectedItem) { g.DrawRectangle(new Pen(Color.Red, 4), corner.X, corner.Y, 40, 40); } g.DrawImage(iconimage.Image, corner.X + 4, corner.Y + 4, src, GraphicsUnit.Pixel); } }
private void AddSkillTree(string id, int level) { ModularAbility a = FindAbility(id); if (a == null) { MessageBox.Show("The AbilityID \"" + id + "\" was not found in the database.", "Invalid AbilityID", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } SkillTreeEntry e = new SkillTreeEntry() { SkillID = id, LearnLevel = level, Name = a.Name }; skillentrylist.Items.Add(e); CommitSkillTree(); }
public SkillTreeEntry ReadSkillTreeEntry() { SkillTreeEntry result = new SkillTreeEntry(); result.SkillID = reader.ReadString(); result.LearnLevel = reader.ReadInt32(); result.TrainingLevel = reader.ReadInt32(); result.MaxLevel = reader.ReadInt32(); result.ExpBase = reader.ReadInt32(); result.ExpDelta = reader.ReadInt32(); result.RequireItemID = reader.ReadString(); result.Column = reader.ReadInt32(); int X = reader.ReadInt32(); int Y = reader.ReadInt32(); result.ManualOffset = new Microsoft.Xna.Framework.Point(X, Y); result.PreRequisiteSkills = ReadPreRequisiteSkills(); return(result); }
private void button1_Click(object sender, EventArgs e) { List <Tuple <string, int> > g = GetPreReqs(); SkillTreeEntry result = new SkillTreeEntry() { Name = AbilityProvider.FindAbility(Entry.SkillID).Name, SkillID = Entry.SkillID, LearnLevel = (int)learnlevel.Value, Column = (int)column.Value, TrainingLevel = (int)traininglevel.Value, MaxLevel = (int)maxlvl.Value, ExpBase = (int)expbase.Value, ExpDelta = (int)expdelta.Value, RequireItemID = requireitemid.Text, PreRequisiteSkills = g }; Entry = result; this.DialogResult = DialogResult.OK; this.Close(); }
private void CommitSkillTree() { SkillTreeEntry[] list = new SkillTreeEntry[skillentrylist.Items.Count]; skillentrylist.Items.CopyTo(list, 0); CurrentClass.SkillTree.Entries = list.ToList(); }