Made short_effect also an rST column, so effect chance works.
authorEevee <git@veekun.com>
Thu, 10 Sep 2009 17:19:03 +0000 (10:19 -0700)
committerEevee <git@veekun.com>
Thu, 10 Sep 2009 17:20:48 +0000 (10:20 -0700)
Added support for types in move effects.

pokedex/db/rst.py
pokedex/db/tables.py

index e70af2c..474a275 100644 (file)
@@ -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))
index d4d42ff..19289c1 100644 (file)
@@ -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,