1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-29 06:26:02 +00:00

Refonte filtre de sorts

This commit is contained in:
Yan Maniez 2019-03-10 01:28:10 +01:00
parent 64eeee346d
commit 027c7b5677
695 changed files with 4316 additions and 2767 deletions

View file

@ -11,6 +11,8 @@ namespace AideDeJeuLib
public class FilteredItems : Items
{
public string Family { get; set; }
[IgnoreDataMember]
[YamlMember]
public List<Item> SubItems

View file

@ -202,11 +202,11 @@ namespace AideDeJeuLib
{ "MonstersHD", typeof(MonstersHD) },
{ "MonstersVO", typeof(MonstersVO) },
{ "Spell", typeof(Spell) },
{ "SpellHD", typeof(SpellHD) },
{ "SpellVO", typeof(SpellVO) },
//{ "SpellHD", typeof(SpellHD) },
//{ "SpellVO", typeof(SpellVO) },
{ "Spells", typeof(Spells) },
{ "SpellsHD", typeof(SpellsHD) },
{ "SpellsVO", typeof(SpellsVO) },
//{ "SpellsHD", typeof(SpellsHD) },
//{ "SpellsVO", typeof(SpellsVO) },
{ "Equipment", typeof(Equipment) },
{ "Equipments", typeof(Equipments) },
{ "LinkItem", typeof(LinkItem) },

View file

@ -12,6 +12,7 @@ namespace AideDeJeuLib
{
public class Spell : Item
{
public string Family { get; set; }
public string Level { get; set; }
public string Type { get; set; }
public string Concentration { get; set; }

View file

@ -10,7 +10,7 @@ using System.Xml.Serialization;
namespace AideDeJeuLib
{
public class SpellHD : Spell
{
}
//public class SpellHD : Spell
//{
//}
}

View file

@ -10,7 +10,7 @@ using System.Xml.Serialization;
namespace AideDeJeuLib
{
public class SpellVO : Spell
{
}
//public class SpellVO : Spell
//{
//}
}

View file

@ -1,12 +1,37 @@
using System;
using AideDeJeu.ViewModels;
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Text;
using YamlDotNet.Serialization;
using System.Linq;
namespace AideDeJeuLib
{
public class Spells : FilteredItems
{
public string Classes { get; set; }
public string Levels { get; set; }
public string Schools { get; set; }
public string Rituals { get; set; }
public string Sources { get; set; }
public List<KeyValuePair<string, string>> Split(string collapsed)
{
if (collapsed == null) return new List<KeyValuePair<string, string>>();
var split = collapsed.Split(new string[] { ", " }, StringSplitOptions.None).Select(s => new KeyValuePair<string, string>(s, s)).ToList();
split.Insert(0, new KeyValuePair<string, string>("", "-"));
return split;
}
public override FilterViewModel GetNewFilterViewModel()
{
return new SpellFilterViewModel(Family,
Split(Classes),
Split(Levels),
Split(Schools),
Split(Rituals),
Split(Sources)
);
}
}
}
}

View file

@ -1,15 +1,78 @@
using AideDeJeu.ViewModels;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace AideDeJeuLib
{
public class SpellsHD : Spells
{
/* public class SpellsHD : Spells
{
public List<KeyValuePair<string, string>> Split(string collapsed)
{
return collapsed.Split(new string[] { ", " }, StringSplitOptions.None).Select(s => new KeyValuePair<string, string>(s,s)).ToList();
}
public override FilterViewModel GetNewFilterViewModel()
{
return new HDSpellFilterViewModel();
return new HDSpellFilterViewModel(ParentName,
Split(Classes),
Split(Levels),
Split(Schools),
Split(Rituals),
Split(Sources)
//new List<KeyValuePair<string, string>>(){
// new KeyValuePair<string, string>("", "Toutes" ),
// new KeyValuePair<string, string>("Barde", "Barde" ),
// new KeyValuePair<string, string>("Clerc", "Clerc" ),
// new KeyValuePair<string, string>("Druide", "Druide" ),
// new KeyValuePair<string, string>("Ensorceleur", "Ensorceleur" ),
// new KeyValuePair<string, string>("Magicien", "Magicien" ),
// new KeyValuePair<string, string>("Ombrelame", "Ombrelame" ),
// new KeyValuePair<string, string>("Paladin", "Paladin" ),
// new KeyValuePair<string, string>("Rôdeur", "Rôdeur" ),
// new KeyValuePair<string, string>("Sorcier", "Sorcier" ),
//},
//new List<KeyValuePair<string, string>>()
//{
// new KeyValuePair<string, string>("0", "Sorts mineurs"),
// new KeyValuePair<string, string>("1", "Niveau 1"),
// new KeyValuePair<string, string>("2", "Niveau 2"),
// new KeyValuePair<string, string>("3", "Niveau 3"),
// new KeyValuePair<string, string>("4", "Niveau 4"),
// new KeyValuePair<string, string>("5", "Niveau 5"),
// new KeyValuePair<string, string>("6", "Niveau 6"),
// new KeyValuePair<string, string>("7", "Niveau 7"),
// new KeyValuePair<string, string>("8", "Niveau 8"),
// new KeyValuePair<string, string>("9", "Niveau 9"),
//},
//new List<KeyValuePair<string, string>>()
//{
// new KeyValuePair<string, string>("", "Toutes"),
// new KeyValuePair<string, string>("abjuration", "Abjuration"),
// new KeyValuePair<string, string>("divination", "Divination"),
// new KeyValuePair<string, string>("enchantement", "Enchantement"),
// new KeyValuePair<string, string>("évocation", "Évocation"),
// new KeyValuePair<string, string>("illusion", "Illusion"),
// new KeyValuePair<string, string>("invocation", "Invocation"),
// new KeyValuePair<string, string>("cromancie", "Nécromancie"),
// new KeyValuePair<string, string>("transmutation", "Transmutation"),
//},
//new List<KeyValuePair<string, string>>()
//{
// new KeyValuePair<string, string>("", "Tous"),
// new KeyValuePair<string, string>("rituel", "Rituel"),
//},
//new List<KeyValuePair<string, string>>()
//{
// new KeyValuePair<string, string>("", "Toutes"),
// new KeyValuePair<string, string>("(SRD", "SRD"),
// new KeyValuePair<string, string>("(MDR", "MDR (H&D)"),
//}
);
}
}
}*/
}

View file

@ -5,11 +5,11 @@ using System.Text;
namespace AideDeJeuLib
{
public class SpellsVO : Spells
{
public override FilterViewModel GetNewFilterViewModel()
{
return new VOSpellFilterViewModel();
}
}
//public class SpellsVO : Spells
//{
// //public override FilterViewModel GetNewFilterViewModel()
// //{
// // return new SpellFilterViewModel();
// //}
//}
}

View file

@ -5,7 +5,6 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using static AideDeJeu.ViewModels.StoreViewModel;
namespace AideDeJeu.ViewModels
{
@ -178,7 +177,7 @@ namespace AideDeJeu.ViewModels
#region Spells
public abstract class SpellFilterViewModel : FilterViewModel
public class SpellFilterViewModel : FilterViewModel
{
private IEnumerable<Filter> _Filters = null;
public override IEnumerable<Filter> Filters
@ -191,7 +190,7 @@ namespace AideDeJeu.ViewModels
{
new Filter() { Key = FilterKeys.Class, Name = "Classe", KeyValues = Classes, _Index = 0 },
new Filter() { Key = FilterKeys.MinLevel, Name = "Niveau Minimum", KeyValues = Niveaux, _Index = 0 },
new Filter() { Key = FilterKeys.MaxLevel, Name = "Niveau Maximum", KeyValues = Niveaux, _Index = 9 },
new Filter() { Key = FilterKeys.MaxLevel, Name = "Niveau Maximum", KeyValues = Niveaux, _Index = 0 },
new Filter() { Key = FilterKeys.School, Name = "École", KeyValues = Ecoles, _Index = 0 },
new Filter() { Key = FilterKeys.Ritual, Name = "Rituel", KeyValues = Rituels, _Index = 0 },
new Filter() { Key = FilterKeys.Source, Name = "Source", KeyValues = Sources, _Index = 0 },
@ -202,6 +201,68 @@ namespace AideDeJeu.ViewModels
}
}
public string Family { get; set; }
public SpellFilterViewModel(
string family,
List<KeyValuePair<string, string>> classes,
List<KeyValuePair<string, string>> levels,
List<KeyValuePair<string, string>> schools,
List<KeyValuePair<string, string>> rituals,
List<KeyValuePair<string, string>> sources)
{
this.Family = family;
this.Classes = classes;
this.Niveaux = levels;
this.Ecoles = schools;
this.Rituels = rituals;
this.Sources = sources;
}
public string LevelConverter(string level)
{
if (level == "") return null;
if (level.StartsWith("Niveau ")) return level.Substring(7);
if (level.StartsWith("Level ")) return level.Substring(6);
return "0";
}
public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default)
{
var levelComparer = new LevelComparer();
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
var niveauMin = LevelConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey) ?? "0";
var niveauMax = LevelConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey) ?? "9";
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
try
{
await StoreViewModel.SemaphoreLibrary.WaitAsync();
using (var context = await StoreViewModel.GetLibraryContextAsync())
{
return context.Spells.Where(spell =>
spell.Family == this.Family &&
levelComparer.Compare(spell.Level, niveauMin) >= 0 &&
levelComparer.Compare(spell.Level, niveauMax) <= 0 &&
spell.Type.ToLower().Contains(ecole.ToLower()) &&
(spell.Source != null && spell.Source.Contains(source)) &&
(spell.Classes != null && spell.Classes.Contains(classe)) &&
(string.IsNullOrEmpty(ritual) || (spell.Ritual != null && spell.Ritual.Contains(ritual))) &&
(
(Helpers.RemoveDiacritics(spell.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
(Helpers.RemoveDiacritics(spell.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
)).OrderBy(spell => spell.Name).ToList();
}
}
catch
{
return new List<Item>();
}
finally
{
StoreViewModel.SemaphoreLibrary.Release();
}
}
//public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
//{
// return await Task.Run(() =>
@ -234,18 +295,19 @@ namespace AideDeJeu.ViewModels
//}
public abstract List<KeyValuePair<string, string>> Classes { get; }
public List<KeyValuePair<string, string>> Classes { get; }
public abstract List<KeyValuePair<string, string>> Niveaux { get; }
public List<KeyValuePair<string, string>> Niveaux { get; }
public abstract List<KeyValuePair<string, string>> Ecoles { get; }
public List<KeyValuePair<string, string>> Ecoles { get; }
public abstract List<KeyValuePair<string, string>> Rituels { get; }
public List<KeyValuePair<string, string>> Rituels { get; }
public abstract List<KeyValuePair<string, string>> Sources { get; }
public List<KeyValuePair<string, string>> Sources { get; }
}
/*
public class VFSpellFilterViewModel : SpellFilterViewModel
{
public override Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken cancellationToken = default)
@ -400,12 +462,33 @@ namespace AideDeJeu.ViewModels
public class HDSpellFilterViewModel : SpellFilterViewModel
{
public HDSpellFilterViewModel(
string parent,
List<KeyValuePair<string, string>> classes,
List<KeyValuePair<string, string>> levels,
List<KeyValuePair<string, string>> schools,
List<KeyValuePair<string, string>> rituals,
List<KeyValuePair<string, string>> sources)
{
this.Classes = classes;
this.Niveaux = levels;
this.Ecoles = schools;
this.Rituels = rituals;
this.Sources = sources;
}
public string LevelConverter(string level)
{
if (level == "-") return null;
if (level.StartsWith("Niveau ")) return level.Substring(7);
return "0";
}
public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default)
{
var levelComparer = new LevelComparer();
var classe = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Class).SelectedKey ?? "";
var niveauMin = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey ?? "0";
var niveauMax = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey ?? "9";
var niveauMin = LevelConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinLevel).SelectedKey) ?? "0";
var niveauMax = LevelConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxLevel).SelectedKey) ?? "9";
var ecole = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.School).SelectedKey ?? "";
var ritual = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Ritual).SelectedKey ?? "";
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
@ -490,7 +573,7 @@ namespace AideDeJeu.ViewModels
new KeyValuePair<string, string>("(SRD", "SRD"),
new KeyValuePair<string, string>("(MDR", "MDR (H&D)"),
};
}
}*/
#endregion Spells
#region Monsters

View file

@ -460,9 +460,9 @@ namespace AideDeJeu.ViewModels
public DbSet<MagicItem> MagicItems { get; set; }
public DbSet<Spell> Spells { get; set; }
public DbSet<Monster> Monsters { get; set; }
public DbSet<SpellHD> SpellsHD { get; set; }
//public DbSet<Spell> Spells { get; set; }
public DbSet<MonsterHD> MonstersHD { get; set; }
public DbSet<SpellVO> SpellsVO { get; set; }
//public DbSet<SpellVO> SpellsVO { get; set; }
public DbSet<MonsterVO> MonstersVO { get; set; }
public DbSet<RaceItem> Races { get; set; }
public DbSet<ClassItem> Classes { get; set; }
@ -486,8 +486,9 @@ namespace AideDeJeu.ViewModels
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MonstersHD>();
modelBuilder.Entity<MonstersVO>();
modelBuilder.Entity<SpellsHD>();
modelBuilder.Entity<SpellsVO>();
//modelBuilder.Entity<SpellsHD>().HasBaseType<Spells>();
//modelBuilder.Entity<SpellsVO>().HasBaseType<Spells>();
modelBuilder.Entity<Spells>();
modelBuilder.Entity<Equipments>();
modelBuilder.Entity<MagicItems>();
}

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Abjuration
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Invocation
CastingTime: 10 minutes

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Nécromancie
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Illusion
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Invocation
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Transmutation
CastingTime: 1 action bonus

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Évocation
CastingTime: 1 action bonus

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 9
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: tour de magie
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Illusion
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: tour de magie
Type: Divination
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Divination
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: tour de magie
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Illusion
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 8
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 8
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Divination
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Illusion
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Abjuration
CastingTime: 1 réaction à effectuer lorsque vous êtes touché par une attaque ou un sort de _[projectile magique](hd_spells_projectile_magique.md)_

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Abjuration
CastingTime: 1 action bonus

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: tour de magie
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 7
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 7
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Invocation
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Abjuration
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 8
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 9
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 7
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Divination
CastingTime: 10 minutes

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 8
Type: Nécromancie
CastingTime: 1 heure

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Enchantement
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Invocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Divination
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Divination
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Divination
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Enchantement
CastingTime: 1 minute

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Divination
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Évocation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Enchantement
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: tour de magie
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Divination
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Nécromancie
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Évocation
CastingTime: 10 minutes

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 3
Type: Abjuration
CastingTime: 1 réaction à utiliser quand vous voyez une créature située dans un rayon de 18 mètres autour de vous lancer un sort

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 4
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 8
Type: Transmutation
CastingTime: 10 minutes

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 6
Type: Invocation
Ritual: rituel

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 5
Type: Abjuration
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 2
Type: Transmutation
CastingTime: 1 action

View file

@ -1,5 +1,6 @@
---
!SpellHD
!Spell
Family: SpellHD
Level: 1
Type: Illusion
CastingTime: 1 action

Some files were not shown because too many files have changed in this diff Show more