mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 22:45:44 +00:00
Refonte filtres monstres
This commit is contained in:
parent
479f8b5dc2
commit
170252a158
684 changed files with 4088 additions and 3210 deletions
|
|
@ -13,6 +13,14 @@ namespace AideDeJeuLib
|
|||
{
|
||||
public string Family { 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;
|
||||
}
|
||||
|
||||
[IgnoreDataMember]
|
||||
[YamlMember]
|
||||
public List<Item> SubItems
|
||||
|
|
|
|||
|
|
@ -196,11 +196,11 @@ namespace AideDeJeuLib
|
|||
{
|
||||
{ "Generic", typeof(Generic) },
|
||||
{ "Monster", typeof(Monster) },
|
||||
{ "MonsterHD", typeof(MonsterHD) },
|
||||
{ "MonsterVO", typeof(MonsterVO) },
|
||||
//{ "MonsterHD", typeof(MonsterHD) },
|
||||
//{ "MonsterVO", typeof(MonsterVO) },
|
||||
{ "Monsters", typeof(Monsters) },
|
||||
{ "MonstersHD", typeof(MonstersHD) },
|
||||
{ "MonstersVO", typeof(MonstersVO) },
|
||||
//{ "MonstersHD", typeof(MonstersHD) },
|
||||
//{ "MonstersVO", typeof(MonstersVO) },
|
||||
{ "Spell", typeof(Spell) },
|
||||
//{ "SpellHD", typeof(SpellHD) },
|
||||
//{ "SpellVO", typeof(SpellVO) },
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ namespace AideDeJeuLib
|
|||
{
|
||||
public class Monster : Item
|
||||
{
|
||||
public string Family { get; set; }
|
||||
public string Type { get; set; }
|
||||
public string Size { get; set; }
|
||||
public string Alignment { get; set; }
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
using AideDeJeu;
|
||||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonsterHD : Monster
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
using AideDeJeu;
|
||||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonsterVO : Monster
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using AideDeJeu.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
|
|
@ -6,5 +7,19 @@ namespace AideDeJeuLib
|
|||
{
|
||||
public class Monsters : FilteredItems
|
||||
{
|
||||
public string Types { get; set; }
|
||||
public string Challenges { get; set; }
|
||||
public string Sizes { get; set; }
|
||||
public string Sources { get; set; }
|
||||
|
||||
public override FilterViewModel GetNewFilterViewModel()
|
||||
{
|
||||
return new MonsterFilterViewModel(Family,
|
||||
Split(Types),
|
||||
Split(Challenges),
|
||||
Split(Sizes),
|
||||
Split(Sources)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonstersHD : Monsters
|
||||
{
|
||||
public override FilterViewModel GetNewFilterViewModel()
|
||||
{
|
||||
return new HDMonsterFilterViewModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
public class MonstersVO : Monsters
|
||||
{
|
||||
public override FilterViewModel GetNewFilterViewModel()
|
||||
{
|
||||
return new VOMonsterFilterViewModel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
//public class SpellHD : Spell
|
||||
//{
|
||||
//}
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
using AideDeJeu.Tools;
|
||||
using Markdig.Syntax;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
//public class SpellVO : Spell
|
||||
//{
|
||||
//}
|
||||
}
|
||||
|
|
@ -16,13 +16,6 @@ namespace AideDeJeuLib
|
|||
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,
|
||||
|
|
|
|||
|
|
@ -1,78 +0,0 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
/* 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(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)"),
|
||||
//}
|
||||
);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
using AideDeJeu.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
//public class SpellsVO : Spells
|
||||
//{
|
||||
// //public override FilterViewModel GetNewFilterViewModel()
|
||||
// //{
|
||||
// // return new SpellFilterViewModel();
|
||||
// //}
|
||||
//}
|
||||
}
|
||||
|
|
@ -202,6 +202,7 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
|
||||
public string Family { get; set; }
|
||||
|
||||
public SpellFilterViewModel(
|
||||
string family,
|
||||
List<KeyValuePair<string, string>> classes,
|
||||
|
|
@ -263,38 +264,6 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
//public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||
//{
|
||||
// return await Task.Run(() =>
|
||||
// {
|
||||
// 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 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 ?? "";
|
||||
// //token.ThrowIfCancellationRequested();
|
||||
// return items.Where(item =>
|
||||
// {
|
||||
// var spell = item as Spell;
|
||||
// return
|
||||
// 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)
|
||||
// .AsEnumerable();
|
||||
// }, token);
|
||||
|
||||
//}
|
||||
|
||||
public List<KeyValuePair<string, string>> Classes { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Niveaux { get; }
|
||||
|
|
@ -307,277 +276,10 @@ namespace AideDeJeu.ViewModels
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
public class VFSpellFilterViewModel : SpellFilterViewModel
|
||||
{
|
||||
public override Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public override List<KeyValuePair<string, string>> Classes { get; } = 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>("Paladin", "Paladin" ),
|
||||
new KeyValuePair<string, string>("Rôdeur", "Rôdeur" ),
|
||||
new KeyValuePair<string, string>("Sorcier", "Sorcier" ),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Niveaux { get; } = 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"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Ecoles { get; } = 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"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Rituels { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "Tous"),
|
||||
new KeyValuePair<string, string>("rituel", "Rituel"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Sources { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "Toutes"),
|
||||
new KeyValuePair<string, string>("(SRD", "SRD"),
|
||||
};
|
||||
}
|
||||
|
||||
public class VOSpellFilterViewModel : SpellFilterViewModel
|
||||
{
|
||||
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 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.SpellsVO.Where(spell =>
|
||||
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 List<KeyValuePair<string, string>> Classes { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "All" ),
|
||||
new KeyValuePair<string, string>("Bard", "Bard" ),
|
||||
new KeyValuePair<string, string>("Cleric", "Cleric" ),
|
||||
new KeyValuePair<string, string>("Druid", "Druid" ),
|
||||
new KeyValuePair<string, string>("Sorcerer", "Sorcerer" ),
|
||||
new KeyValuePair<string, string>("Paladin", "Paladin" ),
|
||||
new KeyValuePair<string, string>("Ranger", "Ranger" ),
|
||||
new KeyValuePair<string, string>("Warlock", "Warlock" ),
|
||||
new KeyValuePair<string, string>("Wizard", "Wizard" ),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Niveaux { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("0", "Sorts mineurs"),
|
||||
new KeyValuePair<string, string>("1", "Level 1"),
|
||||
new KeyValuePair<string, string>("2", "Level 2"),
|
||||
new KeyValuePair<string, string>("3", "Level 3"),
|
||||
new KeyValuePair<string, string>("4", "Level 4"),
|
||||
new KeyValuePair<string, string>("5", "Level 5"),
|
||||
new KeyValuePair<string, string>("6", "Level 6"),
|
||||
new KeyValuePair<string, string>("7", "Level 7"),
|
||||
new KeyValuePair<string, string>("8", "Level 8"),
|
||||
new KeyValuePair<string, string>("9", "Level 9"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Ecoles { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "All"),
|
||||
new KeyValuePair<string, string>("abjuration", "Abjuration"),
|
||||
new KeyValuePair<string, string>("conjuration", "Conjuration"),
|
||||
new KeyValuePair<string, string>("divination", "Divination"),
|
||||
new KeyValuePair<string, string>("enchantment", "Enchantment"),
|
||||
new KeyValuePair<string, string>("evocation", "Evocation"),
|
||||
new KeyValuePair<string, string>("illusion", "Illusion"),
|
||||
new KeyValuePair<string, string>("necromancy", "Necromancy"),
|
||||
new KeyValuePair<string, string>("transmutation", "Transmutation"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Rituels { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "All"),
|
||||
new KeyValuePair<string, string>("(ritual)", "Ritual"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Sources { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "All"),
|
||||
new KeyValuePair<string, string>("(SRD", "SRD"),
|
||||
};
|
||||
}
|
||||
|
||||
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 = 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.SpellsHD.Where(spell =>
|
||||
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 List<KeyValuePair<string, string>> Classes { get; } = 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" ),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Niveaux { get; } = 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"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Ecoles { get; } = 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"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Rituels { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "Tous"),
|
||||
new KeyValuePair<string, string>("rituel", "Rituel"),
|
||||
};
|
||||
|
||||
public override List<KeyValuePair<string, string>> Sources { get; } = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
new KeyValuePair<string, string>("", "Toutes"),
|
||||
new KeyValuePair<string, string>("(SRD", "SRD"),
|
||||
new KeyValuePair<string, string>("(MDR", "MDR (H&D)"),
|
||||
};
|
||||
}*/
|
||||
#endregion Spells
|
||||
|
||||
#region Monsters
|
||||
public abstract class MonsterFilterViewModel : FilterViewModel
|
||||
public class MonsterFilterViewModel : FilterViewModel
|
||||
{
|
||||
private IEnumerable<Filter> _Filters = null;
|
||||
public override IEnumerable<Filter> Filters
|
||||
|
|
@ -591,7 +293,7 @@ namespace AideDeJeu.ViewModels
|
|||
//new Filter() { Key = FilterKeys.Category, Name = "Catégories", KeyValues = Categories, _Index = 0 },
|
||||
new Filter() { Key = FilterKeys.Type, Name = "Type", KeyValues = Types, _Index = 0 },
|
||||
new Filter() { Key = FilterKeys.MinPower, Name = "FP Minimum", KeyValues = Powers, _Index = 0 },
|
||||
new Filter() { Key = FilterKeys.MaxPower, Name = "FP Maximum", KeyValues = Powers, _Index = 28 },
|
||||
new Filter() { Key = FilterKeys.MaxPower, Name = "FP Maximum", KeyValues = Powers, _Index = 0 },
|
||||
new Filter() { Key = FilterKeys.Size, Name = "Taille", KeyValues = Sizes, _Index = 0 },
|
||||
//new Filter() { Key = FilterKeys.Legendary, Name = "Légendaire", KeyValues = Legendaries, _Index = 0 },
|
||||
new Filter() { Key = FilterKeys.Source, Name = "Source", KeyValues = Sources, _Index = 0 },
|
||||
|
|
@ -602,64 +304,82 @@ namespace AideDeJeu.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
//public override async Task<IEnumerable<Item>> FilterItems(IEnumerable<Item> items, CancellationToken token = default)
|
||||
//{
|
||||
// return await Task.Run(() =>
|
||||
// {
|
||||
// var powerComparer = new PowerComparer();
|
||||
|
||||
// //var category = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Category).SelectedKey ?? "";
|
||||
// var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
||||
// //token.ThrowIfCancellationRequested();
|
||||
|
||||
// var minPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPower).SelectedKey ?? "0 (0 PX)";
|
||||
// //token.ThrowIfCancellationRequested();
|
||||
|
||||
// var maxPower = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPower).SelectedKey ?? "30 (155000 PX)";
|
||||
// //token.ThrowIfCancellationRequested();
|
||||
|
||||
// var size = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Size).SelectedKey ?? "";
|
||||
// //token.ThrowIfCancellationRequested();
|
||||
// //var legendary = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Legendary).SelectedKey ?? "";
|
||||
|
||||
// var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||
// token.ThrowIfCancellationRequested();
|
||||
|
||||
// return items.Where(item =>
|
||||
// {
|
||||
// var monster = item as Monster;
|
||||
// return
|
||||
// monster != null &&
|
||||
// monster.Type.Contains(type) &&
|
||||
// (string.IsNullOrEmpty(size) || monster.Size.Equals(size)) &&
|
||||
// (string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) &&
|
||||
// powerComparer.Compare(monster.Challenge, minPower) >= 0 &&
|
||||
// powerComparer.Compare(monster.Challenge, maxPower) <= 0 &&
|
||||
// (
|
||||
// (Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
||||
// (Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
|
||||
// );
|
||||
// })
|
||||
// .OrderBy(monster => monster.Name)
|
||||
// .AsEnumerable();
|
||||
// }, token);
|
||||
|
||||
//}
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Categories { get; }
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Types { get; }
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Powers { get; }
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Sizes { get; }
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Legendaries { get; }
|
||||
|
||||
public abstract List<KeyValuePair<string, string>> Sources { get; }
|
||||
public string Family { get; set; }
|
||||
|
||||
public MonsterFilterViewModel(
|
||||
string family,
|
||||
List<KeyValuePair<string, string>> types,
|
||||
List<KeyValuePair<string, string>> challenges,
|
||||
List<KeyValuePair<string, string>> sizes,
|
||||
List<KeyValuePair<string, string>> sources)
|
||||
{
|
||||
this.Family = family;
|
||||
this.Types = types;
|
||||
this.Powers = challenges;
|
||||
this.Sizes = sizes;
|
||||
this.Sources = sources;
|
||||
}
|
||||
|
||||
public List<KeyValuePair<string, string>> Categories { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Types { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Powers { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Sizes { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Legendaries { get; }
|
||||
|
||||
public List<KeyValuePair<string, string>> Sources { get; }
|
||||
|
||||
public string ChallengeConverter(string challenge)
|
||||
{
|
||||
if (challenge == "") return null;
|
||||
return challenge;
|
||||
}
|
||||
public override async Task<IEnumerable<Item>> GetFilteredItemsAsync(CancellationToken token = default)
|
||||
{
|
||||
var powerComparer = new PowerComparer();
|
||||
|
||||
var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? "";
|
||||
var minPower = ChallengeConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPower).SelectedKey) ?? "0 (0 PX)";
|
||||
var maxPower = ChallengeConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPower).SelectedKey) ?? "30 (155000 PX)";
|
||||
var size = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Size).SelectedKey ?? "";
|
||||
var source = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Source).SelectedKey ?? "";
|
||||
token.ThrowIfCancellationRequested();
|
||||
|
||||
try
|
||||
{
|
||||
await StoreViewModel.SemaphoreLibrary.WaitAsync();
|
||||
using (var context = await StoreViewModel.GetLibraryContextAsync())
|
||||
{
|
||||
return context.Monsters.Where(monster =>
|
||||
monster != null &&
|
||||
monster.Family == this.Family &&
|
||||
monster.Type.Contains(type) &&
|
||||
(string.IsNullOrEmpty(size) || monster.Size.Equals(size)) &&
|
||||
(string.IsNullOrEmpty(source) || (monster.Source != null && monster.Source.Contains(source))) &&
|
||||
powerComparer.Compare(monster.Challenge, minPower) >= 0 &&
|
||||
powerComparer.Compare(monster.Challenge, maxPower) <= 0 &&
|
||||
(
|
||||
(Helpers.RemoveDiacritics(monster.Name).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower())) ||
|
||||
(Helpers.RemoveDiacritics(monster.AltNameText ?? string.Empty).ToLower().Contains(Helpers.RemoveDiacritics(SearchText ?? string.Empty).ToLower()))
|
||||
)
|
||||
).OrderBy(monster => monster.Name).ToList();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new List<Item>();
|
||||
}
|
||||
finally
|
||||
{
|
||||
StoreViewModel.SemaphoreLibrary.Release();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
public class VFMonsterFilterViewModel : MonsterFilterViewModel
|
||||
{
|
||||
|
||||
|
|
@ -1004,7 +724,7 @@ namespace AideDeJeu.ViewModels
|
|||
new KeyValuePair<string, string>("(SRD", "SRD"),
|
||||
new KeyValuePair<string, string>("(CEO", "CEO (H&D)"),
|
||||
};
|
||||
}
|
||||
}*/
|
||||
#endregion Monsters
|
||||
|
||||
#region Equipments
|
||||
|
|
|
|||
|
|
@ -462,9 +462,9 @@ namespace AideDeJeu.ViewModels
|
|||
public DbSet<Spell> Spells { get; set; }
|
||||
public DbSet<Monster> Monsters { get; set; }
|
||||
//public DbSet<Spell> Spells { get; set; }
|
||||
public DbSet<MonsterHD> MonstersHD { get; set; }
|
||||
//public DbSet<MonsterHD> MonstersHD { get; set; }
|
||||
//public DbSet<SpellVO> SpellsVO { get; set; }
|
||||
public DbSet<MonsterVO> MonstersVO { get; set; }
|
||||
//public DbSet<MonsterVO> MonstersVO { get; set; }
|
||||
public DbSet<RaceItem> Races { get; set; }
|
||||
public DbSet<ClassItem> Classes { get; set; }
|
||||
public DbSet<SubRaceItem> SubRaces { get; set; }
|
||||
|
|
@ -485,8 +485,8 @@ namespace AideDeJeu.ViewModels
|
|||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
modelBuilder.Entity<MonstersHD>();
|
||||
modelBuilder.Entity<MonstersVO>();
|
||||
modelBuilder.Entity<Monsters>();
|
||||
//modelBuilder.Entity<MonstersVO>();
|
||||
//modelBuilder.Entity<SpellsHD>().HasBaseType<Spells>();
|
||||
//modelBuilder.Entity<SpellsVO>().HasBaseType<Spells>();
|
||||
modelBuilder.Entity<Spells>();
|
||||
|
|
|
|||
|
|
@ -363,8 +363,8 @@ namespace AideDeJeuCmd
|
|||
|
||||
var itemsSRD = await context.Items.Where(item => (item.Source != null && item.Source.Contains("SRD"))).ToListAsync();
|
||||
var monsters = await context.Monsters.ToListAsync();
|
||||
var monstersHD = await context.MonstersHD.ToListAsync();
|
||||
var monstersVO = await context.MonstersVO.ToListAsync();
|
||||
//var monstersHD = await context.MonstersHD.ToListAsync();
|
||||
//var monstersVO = await context.MonstersVO.ToListAsync();
|
||||
var spells = await context.Spells.ToListAsync();
|
||||
var classes = await context.Classes.ToListAsync();
|
||||
var races = await context.Races.ToListAsync();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: G
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: M
|
||||
Alignment: loyal mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: P
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: neutre bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Mort-vivant
|
||||
Size: M
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: M
|
||||
Alignment: loyal mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: Loyal Neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Plante
|
||||
Size: TG
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Plante
|
||||
Size: P
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature artificielle
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement autre que Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Élémentaire
|
||||
Size: M
|
||||
Alignment: Loyal Neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: M
|
||||
Alignment: neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: P
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (démon)
|
||||
Size: TG
|
||||
Alignment: Chaotique Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement autre que Loyal
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: TG
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement Chaotique
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Mort-vivant
|
||||
Size: M
|
||||
Alignment: Chaotique Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement autre que Loyal
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: Neutre Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: P
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (gobelinoïde)
|
||||
Size: P
|
||||
Alignment: neutre mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (demi-orc)
|
||||
Size: M
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: Loyal Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Humanoïde (n'importe quelle race)
|
||||
Size: M
|
||||
Alignment: n'importe quel alignement
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: M
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fée
|
||||
Size: M
|
||||
Alignment: Loyal Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: G
|
||||
Alignment: Chaotique Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: G
|
||||
Alignment: Chaotique Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse
|
||||
Size: P
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Céleste
|
||||
Size: M
|
||||
Alignment: Loyal Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TP
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Plante
|
||||
Size: M
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Bête
|
||||
Size: TG
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Vase
|
||||
Size: G
|
||||
Alignment: non-alignée
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon
|
||||
Size: G
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Céleste
|
||||
Size: M
|
||||
Alignment: Loyal Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: G
|
||||
Alignment: Neutre Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: M
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: M
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: G
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: M
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: G
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: G
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable, métamorphe)
|
||||
Size: TP
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Fiélon (diable)
|
||||
Size: G
|
||||
Alignment: Loyal Mauvais
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Aberration
|
||||
Size: G
|
||||
Alignment: Chaotique Neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Élémentaire
|
||||
Size: G
|
||||
Alignment: Chaotique Bon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Créature monstrueuse (métamorphe)
|
||||
Size: M
|
||||
Alignment: neutre
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
!MonsterHD
|
||||
!Monster
|
||||
Family: MonsterHD
|
||||
Type: Dragon
|
||||
Size: TG
|
||||
Alignment: Chaotique Mauvais
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue