public AbilityExecutor(ModularAbility ability, MapEntities.Actor Source, MapEntities.Actor Target) { this.Original = ability; this.ability = ability.GetEffectiveAbility(); this.Source = Source; this.Target = Target; }
private void abilityselector_DoubleClick(object sender, EventArgs e) { if (abilityselector.SelectedItem == null) { return; } CurrentAbility = (ModularAbility)abilityselector.SelectedItem; EditCurrentAbility(); }
void WriteAbility(ModularAbility ability) { writer.Write(ability.ID); writer.Write(ability.Name); writer.Write(ability.DescriptionString); writer.Write(ability.Icon); WriteDictionary(ability.BaseValues); WriteDictionary(ability.GrowthValues); writer.Write(ability.GetModules().Count); foreach (ITimedEffect effect in ability.GetModules()) { WriteEffect(effect); } }
private bool AddReqItem(string id, int lvl) { ModularAbility a = AbilityProvider.FindAbility(id); if (a == null) { MessageBox.Show("The AbilityID \"" + id + "\" was not found in the database.", "Invalid AbilityID", MessageBoxButtons.OK, MessageBoxIcon.Hand); return(false); } string[] ItemProps = new string[] { a.Name, lvl.ToString() }; ListViewItem line = new ListViewItem(ItemProps); line.Tag = id; requisitelist.Items.Add(line); return(true); }
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(); }
public ModularAbility ReadAbility() { ModularAbility result = ModularAbility.CreateEmpty(reader.ReadString()); result.Name = reader.ReadString(); result.DescriptionString = reader.ReadString(); result.Icon = reader.ReadInt32(); result.BaseValues = ReadDictionary(); result.GrowthValues = ReadDictionary(); int effcount = reader.ReadInt32(); for (int i = 0; i < effcount; i++) { result.Effects.Add(ReadEffect()); } return(result); }
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 deleteAbilityToolStripMenuItem_Click(object sender, EventArgs e) { ModularAbility removeme = (ModularAbility)abilityselector.SelectedItem; abilityselector.Items.Remove(removeme); abilities.Remove(removeme); if (abilities.Count > 0) { abilityselector.SelectedIndex = 0; CurrentAbility = (ModularAbility)abilityselector.SelectedItem; } else { CurrentAbility = null; } EditCurrentAbility(); }
private void createAbilityToolStripMenuItem_Click(object sender, EventArgs e) { TextPrompt prompt = new TextPrompt(); if (prompt.ShowDialog() == DialogResult.OK) { ModularAbility a = ModularAbility.CreateEmpty(prompt.Input); List <GameObject.Interfaces.IGameID> abs = abilities.ConvertAll(b => (GameObject.Interfaces.IGameID)b); //this will modify the Name if autoname is needed AddWithAutoname(a, abs, true); abilities.Add(a); abilityselector.Items.Add(a); CurrentAbility = a; abilityselector.SelectedItem = a; EditCurrentAbility(); } }
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(); }
private void Form1_Load(object sender, EventArgs e) { AbilityEffectDefinition.LoadDefinitions(); MagicFileReader fr = new MagicFileReader(); abilities = fr.ReadAbilityFile(); if (abilities.Count > 0) { foreach (ModularAbility ability in abilities) { abilityselector.Items.Add(ability); } CurrentAbility = abilities[0]; abilityselector.SelectedIndex = 0; } else { CurrentAbility = null; } EditCurrentAbility(); classes = fr.ReadClassFile(); if (classes.Count > 0) { foreach (CharacterTemplate t in classes) { classlist.Items.Add(t); } CurrentClass = classes[0]; classlist.SelectedIndex = 0; } else { CurrentAbility = null; } EditCurrentClass(); panel1.Refresh(); }
void RefreshSkillTree() { this.Controls.Clear(); foreach (SkillTreeEntry e in this.tree.Entries) { ModularAbility a = null; foreach (ModularAbility f in abilities) { if (f.ID == e.SkillID) { a = f; } } ItemSlot s = new ItemSlot(a); s.X = e.GetLocation().X; s.Y = e.GetLocation().Y; s.CanPut = false; s.CanGrab = false; s.Tint = Color.Red; // s.RenderCooldown = true; bool learned = false; foreach (ModularAbility f2 in Player.Abilities) { if (f2.ID == e.SkillID && f2.Level > 0) { learned = true; } } if (learned) { s.CanGrab = true; s.ItemOut += ItemOutS; s.RenderCooldown = true; s.Tint = Color.Green; } s.WM = WM; //s.BeforeItemChanged += ItemOutS; this.Controls.Add(s); } }
public void GetFBind(int index, Player Player) { index = MathHelper.Clamp(index, 0, 7); ItemSlot s = FBinds[index]; GUI.IActionIcon item = s.Item; ModularAbility a = item as ModularAbility; Item i = item as Item; //eventual 3rd value for other actions if (a != null) { if (Player.Executor != null && Player.Executor.done == false) { return; } if (a.CoolDown > 0) { return; } if (a.GetValue("mp_cost") > Player.CurrentMP) { return; } Player.Executor = new GameObject.AbilityLogic.AbilityExecutor(a, Player, Player.Target); Console.Write("Used " + a.Name); return; } if (i != null) { if (i.CoolDown > 0) { return; } i.Use(); } }
private void ReloadSkillTreeList() { skillentrylist.Items.Clear(); List <SkillTreeEntry> invalids = new List <SkillTreeEntry>(); foreach (SkillTreeEntry e in CurrentClass.SkillTree.Entries) { ModularAbility a = FindAbility(e.SkillID); if (a == null) { invalids.Add(e); MessageBox.Show("The AbilityID \"" + e.SkillID + "\" was not found in the database.", "Invalid AbilityID", MessageBoxButtons.OK, MessageBoxIcon.Hand); continue; } e.Name = a.Name; skillentrylist.Items.Add(e); } foreach (SkillTreeEntry e in invalids) { CurrentClass.SkillTree.Entries.Remove(e); } }
private void Form1_Load(object sender, EventArgs e) { AbilityEffectDefinition.LoadDefinitions(); MagicFileReader fr = new MagicFileReader(); //load abilities abilities = fr.ReadAbilityFile(); if (abilities.Count > 0) { foreach (ModularAbility ability in abilities) { abilityselector.Items.Add(ability); } CurrentAbility = abilities[0]; abilityselector.SelectedIndex = 0; } else { CurrentAbility = null; } EditCurrentAbility(); //load classes classes = fr.ReadClassFile(); if (classes.Count > 0) { foreach (CharacterTemplate t in classes) { classlist.Items.Add(t); } CurrentClass = classes[0]; classlist.SelectedIndex = 0; } else { CurrentAbility = null; } EditCurrentClass(); //load item type defs itemtypes = fr.ReadItemTypeDefinitionFile(); if (itemtypes.Count > 0) { foreach (ItemTypeDefinition def in itemtypes) { itemtypelist.Items.Add(def); } CurrentItemType = itemtypes[0]; itemtypelist.SelectedIndex = 0; } else { CurrentItemType = null; } //reload panel based editing controls panel1.Refresh(); }