public SpellBook(SpellBookConfiguration configuration) : base(configuration) { BookSize = configuration.Size; Spells = new BookSpell[BookSize]; inventoryImage = configuration.InventoryImage; worldImage = configuration.WorldImage; }
public void Run(BookSpell spellToEdit, Action <bool, BookSpell> callbackOnExit) { view.SpellName = spellToEdit.Name; view.ManaCost = spellToEdit.ManaCost; callback = callbackOnExit; spellFilePath = editSpellService.PrepareSpellTemplate(spellToEdit.Code); view.Show(); }
private string GetName(BookSpell spell) { if (spellNamesCache.ContainsKey(spell)) { return(spellNamesCache[spell]); } var name = GenerateName(); spellNamesCache.Add(spell, name); return(name); }
public SpellBook(SaveData data) : base(data) { BookSize = data.GetIntValue(SaveKeySize); var spellsRaw = data.GetObjectsCollection <BookSpell>(SaveKeySpells); Spells = new BookSpell[BookSize]; for (int index = 0; index < spellsRaw.Length; index++) { Spells[index] = spellsRaw[index]; } inventoryImage = data.GetObject <SymbolsImageSaveable>(SaveKeyInventoryImage).GetImage(); worldImage = data.GetObject <SymbolsImageSaveable>(SaveKeyWorldImage).GetImage(); }
private void View_Ok(object sender, EventArgs e) { view.Close(); var code = editSpellService.ReadSpellCodeFromFile(spellFilePath); var spell = new BookSpell { Name = view.SpellName, ManaCost = view.ManaCost, Code = code }; callback(true, spell); }
public void RemoveSpell(BookSpell spell) { var serializer = new XmlSerializer(typeof(XmlSpellsLibrary)); var library = LoadSpellsLibrary(serializer); var spellToRemove = library?.Spells.FirstOrDefault(xmlSpell => xmlSpell.Equals(spell)); if (spellToRemove == null) { return; } library.Spells = library.Spells.Where(xmlSpell => !ReferenceEquals(xmlSpell, spellToRemove)).ToArray(); WriteToXml(library, serializer); }
public void SaveSpell(BookSpell spell) { var serializer = new XmlSerializer(typeof(XmlSpellsLibrary)); var library = LoadSpellsLibrary(serializer); if (library == null) { library = new XmlSpellsLibrary(); var path = Path.GetDirectoryName(FilePath); if (!string.IsNullOrEmpty(path)) { Directory.CreateDirectory(path); } } var resultSpells = new List <XmlBookSpell>(library.Spells ?? new XmlBookSpell[0]) { new XmlBookSpell(spell) }; library.Spells = resultSpells.ToArray(); WriteToXml(library, serializer); }
public SpellListBoxItem(BookSpell spell, int bookIndex) { Spell = spell; BookIndex = bookIndex; }
public bool Equals(BookSpell spell) { return(string.Equals(Name, spell.Name) && string.Equals(Code, spell.Code)); }
public XmlBookSpell(BookSpell spell) { Name = spell.Name; Code = spell.Code; ManaCost = spell.ManaCost; }
public CastSpellPlayerAction(BookSpell spell) { this.spell = spell; }