From 774b69f5bd431cf1afac30ed0de49bae300f9393 Mon Sep 17 00:00:00 2001 From: Eevee Date: Thu, 10 Sep 2009 10:19:03 -0700 Subject: [PATCH] Made short_effect also an rST column, so effect chance works. Added support for types in move effects. --- pokedex/db/rst.py | 8 ++++++-- pokedex/db/tables.py | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pokedex/db/rst.py b/pokedex/db/rst.py index e70af2c..474a275 100644 --- a/pokedex/db/rst.py +++ b/pokedex/db/rst.py @@ -63,12 +63,13 @@ class UnicodeOutput(Output): ### Text roles def generic_role(name, rawtext, text, lineno, inliner, options={}, content=[]): - node = docutils.nodes.strong(text, rawtext, **options) + node = docutils.nodes.emphasis(rawtext, text, **options) return [node], [] roles.register_local_role('ability', generic_role) roles.register_local_role('item', generic_role) roles.register_local_role('move', generic_role) +roles.register_local_role('type', generic_role) roles.register_local_role('pokemon', generic_role) roles.register_local_role('mechanic', generic_role) @@ -147,6 +148,9 @@ class MoveEffectProperty(object): lie and it doesn't yet. """ + def __init__(self, effect_column): + self.effect_column = effect_column + def __get__(self, move, move_class): # Attach a function for handling the `data` role # XXX make this a little more fault-tolerant.. maybe.. @@ -155,6 +159,6 @@ class MoveEffectProperty(object): newtext = getattr(move, text[5:]) return docutils.nodes.Text(newtext, rawtext) - return RstString(move.move_effect.effect, + return RstString(getattr(move.move_effect, self.effect_column), document_properties=dict( _pokedex_handle_data=data_role_func)) diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index d4d42ff..19289c1 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -178,7 +178,7 @@ class MoveEffect(TableBase): __tablename__ = 'move_effects' id = Column(Integer, primary_key=True, nullable=False) priority = Column(SmallInteger, nullable=False) - short_effect = Column(Unicode(128), nullable=False) + short_effect = Column(Unicode(256), nullable=False) effect = Column(Unicode(5120), nullable=False) class MoveTarget(TableBase): @@ -409,9 +409,9 @@ Move.machines = relation(Machine, backref='move') Move.target = relation(MoveTarget, backref='moves') Move.type = relation(Type, backref='moves') -Move.effect = rst.MoveEffectProperty() +Move.effect = rst.MoveEffectProperty('effect') Move.priority = association_proxy('move_effect', 'priority') -Move.short_effect = association_proxy('move_effect', 'short_effect') +Move.short_effect = rst.MoveEffectProperty('short_effect') Pokemon.abilities = relation(Ability, secondary=PokemonAbility.__table__, order_by=PokemonAbility.slot,