return MarkdownString(effect_text)
-class MoveEffectProperty(object):
- """Property that wraps a move effect. Used like this:
-
- MoveClass.effect = MoveEffectProperty('effect')
-
- some_move.effect # returns a MarkdownString
- some_move.effect.as_html # returns a chunk of HTML
-
- This class also performs simple substitution on the effect, replacing
- `$effect_chance` with the move's actual effect chance.
- """
-
- def __init__(self, effect_column):
- self.effect_column = effect_column
-
- def __get__(self, move, move_class):
- if move is None:
- # Don't crash with getattr on the class
- return NotImplemented
- return _MoveEffects(self.effect_column, move)['en']
-
class MoveEffectsProperty(object):
"""Property that wraps move effects. Used like this:
Move.target = relation(MoveTarget, backref='moves')
Move.type = relation(Type, back_populates='moves')
-Move.effect = markdown.MoveEffectProperty('effect')
-Move.effects = markdown.MoveEffectsProperty('effect')
-Move.short_effect = markdown.MoveEffectProperty('short_effect')
-Move.short_effects = markdown.MoveEffectsProperty('short_effect')
-
MoveChangelog.changed_in = relation(VersionGroup, backref='move_changelog')
MoveChangelog.move_effect = relation(MoveEffect, backref='move_changelog')
MoveChangelog.type = relation(Type, backref='move_changelog')
-MoveChangelog.effect = markdown.MoveEffectProperty('effect')
-MoveChangelog.effects = markdown.MoveEffectsProperty('effect')
-MoveChangelog.short_effect = markdown.MoveEffectProperty('short_effect')
-MoveChangelog.short_effects = markdown.MoveEffectsProperty('short_effect')
-
MoveEffect.category_map = relation(MoveEffectCategoryMap)
MoveEffect.categories = association_proxy('category_map', 'category')
MoveEffect.changelog = relation(MoveEffectChangelog,
for table in list(table_classes):
if issubclass(table, LanguageSpecific):
table.language = relation(Language, primaryjoin=table.language_id == Language.id)
+
+Move.effect = DefaultLangProperty('effects')
+Move.effects = markdown.MoveEffectsProperty('effect')
+Move.short_effect = DefaultLangProperty('short_effects')
+Move.short_effects = markdown.MoveEffectsProperty('short_effect')
+
+MoveChangelog.effect = DefaultLangProperty('effects')
+MoveChangelog.effects = markdown.MoveEffectsProperty('effect')
+MoveChangelog.short_effect = DefaultLangProperty('short_effects')
+MoveChangelog.short_effects = markdown.MoveEffectsProperty('short_effect')