spells also ordered by level

This commit is contained in:
matsavage
2021-05-04 22:31:03 +01:00
parent 4dd5ae232b
commit 406b4d004d
4 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -587,7 +587,7 @@ class Character:
spells |= set(c.spells_known) | set(c.spells_prepared)
if self.race is not None:
spells |= set(self.race.spells_known) | set(self.race.spells_prepared)
return sorted(tuple(spells), key=(lambda x: (x.name)))
return sorted(tuple(spells), key=(lambda x: (x.level, x.name)))
@property
def spells_prepared(self):
@@ -598,7 +598,7 @@ class Character:
spells |= set(c.spells_prepared)
if self.race is not None:
spells |= set(self.race.spells_prepared)
return sorted(tuple(spells), key=(lambda x: (x.name)))
return sorted(tuple(spells), key=(lambda x: (x.level, x.name)))
def set_attrs(self, **attrs):
"""
+3 -6
View File
@@ -3,15 +3,14 @@
[% for spl in character.spells %]
[% if use_dnd_decorations %]
\DndSpellHeader
\DndSpellHeader
{[[ spl.name ]]}
{[% if spl.level > 0 %][[ ordinals[spl.level] ]]-level [[ spl.magic_school ]][% else %][[ spl.magic_school ]] Cantrip[% endif %] [% if spl.ritual %](\textit{ritual})[% endif %]}
{[[ spl.casting_time ]]}
{[[ spl.casting_range ]]}
{[[ spl.component_string ]]}
{[% if spl.ritual %]Concentration, up to [% endif %][[ spl.duration ]]}
[% else %]
[% else %]
\section*{[[ spl.name ]]}
[% if spl.level > 0 %] %
\textit{[[ spl.magic_school ]] Level [[ spl.level ]]} %
@@ -24,8 +23,7 @@
(\textit{ritual})%
[% elif spl.concentration %]%
(\textit{concentration})%
[% endif %]%
[% endif %]%
%% \noindent
\begin{description}
\setlength{\itemsep}{\zerosep}%
@@ -36,7 +34,6 @@
\item [Components:] [[ spl.component_string ]]
\end{description}
% \vspace{\zerosep}
[% endif %]
[[ spl.__doc__ | rst_to_latex(top_heading_level=1) ]]
+1 -1
View File
@@ -216,7 +216,7 @@ def make_sheet(
)
sheets.append(spell_base + ".pdf")
# end of PDF gen
if character.is_spellcaster:
tex.append(create_spellbook_tex(character, use_dnd_decorations=fancy_decorations))
+4 -1
View File
@@ -63,7 +63,7 @@ class Spell:
return s
def __repr__(self):
return '"{:s}"'.format(self.name)
return f"{self.level} {self.name}"
def __eq__(self, other):
return (self.name == other.name) and (self.level == other.level)
@@ -71,6 +71,9 @@ class Spell:
def __hash__(self):
return 0
def __lt__(self, other):
return (self.level, self.name) < (other.level, other.name)
@property
def component_string(self):
s = f'{", ".join(self.components)}'