コード例 #1
0
ファイル: SpellBookFilter.cs プロジェクト: Razkan/CoolProject
        public ValueTask <ISpellBook> ByTag(string[] filter, ISpellBook spellBook)
        {
            if (filter.Any())
            {
                var removeList = new List <ISpell>();
                var enumTags   = filter.Select(Enum.Parse <Tag>).ToArray();
                foreach (var spell in spellBook.Spells)
                {
                    var containsTag = false;
                    if (spell.Tags != null && spell.Tags.Any())
                    {
                        foreach (var tag in enumTags)
                        {
                            if (spell.Tags.Contains(tag))
                            {
                                containsTag = true;
                            }
                        }
                    }

                    if (!containsTag)
                    {
                        removeList.Add(spell);
                    }
                }

                foreach (var spell in removeList)
                {
                    spellBook.Spells.Remove(spell);
                }
            }

            return(new ValueTask <ISpellBook>(spellBook));
        }
コード例 #2
0
ファイル: SpellBookFilter.cs プロジェクト: Razkan/CoolProject
        public ValueTask <ISpellBook> BySpell(string[] filter, ISpellBook spellBook)
        {
            if (filter.Any())
            {
                var removeList = new List <ISpell>();
                foreach (var spell in spellBook.Spells)
                {
                    var containsWord = false;
                    if (spell.Tags != null && spell.Tags.Any())
                    {
                        foreach (var word in filter)
                        {
                            if (spell.Name.Contains(word, StringComparison.OrdinalIgnoreCase))
                            {
                                containsWord = true;
                            }
                        }
                    }

                    if (!containsWord)
                    {
                        removeList.Add(spell);
                    }
                }

                foreach (var spell in removeList)
                {
                    spellBook.Spells.Remove(spell);
                }
            }

            return(new ValueTask <ISpellBook>(spellBook));
        }
コード例 #3
0
 public InventoryItem(int newID, IWeapon weapon, IArmor armor, ISpellBook spellBook, int quantity)
 {
     ID        = newID;
     Weapon    = weapon;
     Armor     = armor;
     SpellBook = spellBook;
     Quantity  = quantity;
 }
コード例 #4
0
        public InventoryItem(ISpellBook spellBook)
        {
            DatabaseConnection conn   = new DatabaseConnection();
            DatabaseReader     reader = conn.QueryRowFromTableWhereColNameEqualsInt("Inventory", "Spell_Book_FK", spellBook.ID);

            SpellBook = spellBook;
            if (reader.NextRow())
            {
                ID       = reader.GetIntFromCol("ID");
                Quantity = reader.GetIntFromCol("Quantity");
            }
            else
            {
                string query = $"INSERT INTO Inventory (Spell_Book_FK, Quantity) VALUES ({spellBook.ID}, 0);";
                conn.ExecuteNonQuery(query);
                Quantity = 0;
                reader.CloseReader();
                reader = conn.QueryRowFromTableWhereColNameEqualsInt("Inventory", "Spell_Book_FK", spellBook.ID);
                ID     = reader.GetIntFromCol("ID");
            }
            reader.CloseReader();
            conn.CloseConnection();
        }
コード例 #5
0
ファイル: SpellBookFilter.cs プロジェクト: Razkan/CoolProject
 public ValueTask <ISpellBook> BySpecial(string[] filter, ISpellBook spellBook)
 {
     return(new ValueTask <ISpellBook>(spellBook));
 }
コード例 #6
0
ファイル: SpellBookFilter.cs プロジェクト: Razkan/CoolProject
 public ValueTask <bool> BySchool(string[] filter, ISpellBook spellBook)
 {
     return(filter.Any()
         ? new ValueTask <bool>(filter.Any(school => string.Equals(school, spellBook.School, StringComparison.OrdinalIgnoreCase)))
         : new ValueTask <bool>(true));
 }