mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-18 20:23:27 +02:00
spells also ordered by level
This commit is contained in:
@@ -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,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) ]]
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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)}'
|
||||
|
||||
Reference in New Issue
Block a user