class BILL_TYPE(DjangoEnum): stability = rels.Column(unique=False, single_type=False) enabled = rels.Column(unique=False) records = ( ('PLACE_RENAMING', 0, u'переименование города', 1.5 * c.PLACE_STABILITY_UNIT, True), ('PERSON_REMOVE', 1, u'исключить горожанина из Совета', None, False), ('PLACE_DESCRIPTION', 2, u'изменить описание города', 0.4 * c.PLACE_STABILITY_UNIT, True), ('PLACE_CHANGE_MODIFIER', 3, u'изменить специализацию города', 0.4 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_CREATE', 4, u'возвести постройку', 0.4 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_DESTROY', 5, u'разрушить постройку', 1.0 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_RENAMING', 6, u'переименовать постройку', 0.2 * c.PLACE_STABILITY_UNIT, True), ('PLACE_RESOURCE_EXCHANGE', 7, u'обмен ресурсами', 0.8 * c.PLACE_STABILITY_UNIT, True), ('BILL_DECLINE', 8, u'отмена закона', 0.4 * c.PLACE_STABILITY_UNIT, True), ('PLACE_RESOURCE_CONVERSION', 9, u'изменение параметров города', 0.8 * c.PLACE_STABILITY_UNIT, True), ('PERSON_CHRONICLE', 10, u'запись в летописи о Мастере', 0.2 * c.PLACE_STABILITY_UNIT, True), ('PLACE_CHRONICLE', 11, u'запись в летописи о городе', 0.2 * c.PLACE_STABILITY_UNIT, True), ('PERSON_MOVE', 12, u'переезд Мастера', 2.0 * c.PLACE_STABILITY_UNIT, True), )
class WIND_DIRECTION(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) direction = rels.Column(unique=False) records = ((0, 'восточный', -math.pi * 8.0 / 8.0), (1, 'востоко-юго-восточный', -math.pi * 7.0 / 8.0), (2, 'юго-восточный', -math.pi * 6.0 / 8.0), (3, 'юго-юго-восточный', -math.pi * 5.0 / 8.0), (4, 'южный', -math.pi * 4.0 / 8.0), (5, 'юго-юго-западный', -math.pi * 3.0 / 8.0), (6, 'юго-западный', -math.pi * 2.0 / 8.0), (7, 'западо-юго-западный', -math.pi * 1.0 / 8.0), (8, 'западный', -math.pi * 0.0 / 8.0), (9, 'западный', math.pi * 0.0 / 8.0), (10, 'западо-северо-западный', math.pi * 1.0 / 8.0), (11, 'северо-западный', math.pi * 2.0 / 8.0), (12, 'северо-северо-западный', math.pi * 3.0 / 8.0), (13, 'северный', math.pi * 4.0 / 8.0), (14, 'северо-северо-восточный', math.pi * 5.0 / 8.0), (15, 'северо-восточный', math.pi * 6.0 / 8.0), (16, 'востоко-северо-восточный', math.pi * 7.0 / 8.0), (17, 'восточный', math.pi * 8.0 / 8.0))
class CONVERSION(DjangoEnum): resource_from = rels.Column(unique=False) resource_from_delta = rels.Column(unique=False) resource_to = rels.Column(unique=False) resource_to_delta = rels.Column(unique=False) records = ( _conversion_record('TAX_TO_PRODUCTION_SMALL', 0, RESOURCE_EXCHANGE_TYPE.TAX_SMALL, 1, RESOURCE_EXCHANGE_TYPE.PRODUCTION_SMALL, 1), _conversion_record('TAX_TO_PRODUCTION_NORMAL', 1, RESOURCE_EXCHANGE_TYPE.TAX_NORMAL, 1, RESOURCE_EXCHANGE_TYPE.PRODUCTION_NORMAL, 1), _conversion_record('TAX_TO_PRODUCTION_LARGE', 2, RESOURCE_EXCHANGE_TYPE.TAX_LARGE, 1, RESOURCE_EXCHANGE_TYPE.PRODUCTION_LARGE, 1), _conversion_record('TAX_TO_SAFETY_SMALL', 3, RESOURCE_EXCHANGE_TYPE.TAX_SMALL, 1, RESOURCE_EXCHANGE_TYPE.SAFETY_SMALL, 1), _conversion_record('TAX_TO_SAFETY_NORMAL', 4, RESOURCE_EXCHANGE_TYPE.TAX_NORMAL, 1, RESOURCE_EXCHANGE_TYPE.SAFETY_NORMAL, 1), _conversion_record('TAX_TO_SAFETY_LARGE', 5, RESOURCE_EXCHANGE_TYPE.TAX_LARGE, 1, RESOURCE_EXCHANGE_TYPE.SAFETY_LARGE, 1), _conversion_record('TAX_TO_TRANSPORT_SMALL', 6, RESOURCE_EXCHANGE_TYPE.TAX_SMALL, 1, RESOURCE_EXCHANGE_TYPE.TRANSPORT_SMALL, 1), _conversion_record('TAX_TO_TRANSPORT_NORMAL', 7, RESOURCE_EXCHANGE_TYPE.TAX_NORMAL, 1, RESOURCE_EXCHANGE_TYPE.TRANSPORT_NORMAL, 1), _conversion_record('TAX_TO_TRANSPORT_LARGE', 8, RESOURCE_EXCHANGE_TYPE.TAX_LARGE, 1, RESOURCE_EXCHANGE_TYPE.TRANSPORT_LARGE, 1), )
class WILD_TRANSPORT(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) transport = rels.Column() records = [(r.value, 'видно, как %s' % r.text, r.transport) for r in ROAD_TRANSPORT.records]
class RATING_TYPE(DjangoEnum): hint = rels.Column(primary=False, unique=False) field = rels.Column() records = ( ('MIGHT', 'might', u'Могущество', u'', 'might'), ('BILLS', 'bills', u'Принятые законы', u'', 'bills_count'), ('MAGIC_POWER', 'magic-power', u'Магическая сила героя', u'', 'magic_power'), ('PHYSIC_POWER', 'physic-power', u'Физическая сила героя', u'', 'physic_power'), ('LEVEL', 'level', u'Уровень героя', u'', 'level'), ('PHRASES', 'phrases', u'Добавленные фразы', u'', 'phrases_count'), ('PVP_BATTLES_1x1_NUMBER', 'pvp_battles_1x1_number', u'Сражения в PvP', u'', 'pvp_battles_1x1_number'), ('PVP_BATTLES_1x1_VICTORIES', 'pvp_battles_1x1_victories', u'Победы в PvP', u'Для участия в рейтинге необходимо провести минимум %(min_pvp_battles)s боёв' % { 'min_pvp_battles': heroes_settings.MIN_PVP_BATTLES }, 'pvp_battles_1x1_victories'), ('REFERRALS_NUMBER', 'referrals_number', u'Последователи', u'', 'referrals_number'), ('ACHIEVEMENTS_POINTS', 'achievements_points', u'Очки достижений', u'', 'achievements_points'), ('HELP_COUNT', 'help_count', u'Помощь герою', u'', 'help_count'), ('GIFTS_RETURNED', 'gifts_returned', u'Возвращено подарков', u'Во время путешествия герой может найти потерянный детский подарок. Если помочь герою, когда подарок находится в рюкзаке, то он вернётся к ребёнку.', 'gifts_returned'), ('POLITICS_POWER', 'politics_power', u'Влиятельность', u'Влияние, которое герой оказывает своими заданиями (участвуют только герои, влияющие на всех советников)', 'politics_power'), )
class SAFETY(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) safety = rels.Column() records = ( (1, 'ни один вменяемый герой никогда не сунется в это пропащее место', 0.000), (2, 'здесь есть только душераздирающие вопли, дикая магия, опаснейшие монстры и страх, пробирающий до костей', 0.101), (3, 'в округе нет ни одного безопасного места, за каждым поворотом, каждым камнем путника ждёт бой не на жизнь, а на смерть', 0.201), (4, 'ужасные крики то и дело пролетают по окрестностям, опасные твари ходят в открытую, далеко не каждый герой отважится зайти в это гиблое место', 0.301), (5, 'хищные взгляды множества голодных тварей не дадут расслабиться ни одному смельчаку, рискнувшему забраться в эту глушь', 0.401), (6, 'разбросанные тут и там кости и остатки походного скарба не предвещают ничего хорошего путникам', 0.501), (7, 'пейзаж выглядит устрашающе, присмотревшись, можно увидеть свежие следы хищных тварей', 0.601), (8, 'местность выглядит настораживающе, расслабляться не стоит — опасность рядом', 0.701), (9, 'окрестности выглядят безопаснее обычного, видимо, здесь часто ходят опытные герои', 0.801), (10, 'местность очень безопасная и ухоженная', 0.901))
class TEMPERATURE_POWER(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) temperature = rels.Column() records = ((0, 'ужасно холодно', 0.00), (1, 'очень холодно', 0.10), (2, 'холодно', 0.25), (3, 'прохладно', 0.35), (4, 'умеренная температура', 0.45), (5, 'тепло', 0.55), (6, 'жарко', 0.70), (7, 'очень жарко', 0.85), (8, 'ужасно жарко', 0.95))
class WETNESS_POWER(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) wetness = rels.Column() records = ((0, 'ужасно сухо', 0.00), (1, 'очень сухо', 0.05), (2, 'сухо', 0.15), (3, 'пониженная влажность', 0.30), (4, 'умеренная влажность', 0.40), (5, 'повышенная влажность', 0.60), (6, 'влажно', 0.70), (7, 'очень влажно', 0.85), (8, 'туман', 0.90), (9, 'сильный туман', 0.95))
class WIND_POWER(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) power = rels.Column() records = ((0, 'штиль', 0.0), (1, 'тихий ветер', 0.05), (2, 'лёгкий ветер', 0.10), (3, 'слабый ветер', 0.17), (4, 'умеренный ветер', 0.25), (5, 'свежий ветер', 0.43), (6, 'сильный ветер', 0.55), (7, 'крепкий ветер', 0.65), (8, 'очень крепкий ветер', 0.75), (9, 'шторм', 0.85), (10, 'сильный шторм', 0.88), (11, 'жестокий шторм', 0.92), (12, 'ураган', 0.96))
class MOB_TYPE(DjangoEnum): is_mercenary = rels.Column(unique=False) is_eatable = rels.Column(unique=False) records = (('PLANT', 0, u'растения', False, True), ('ANIMAL', 1, u'животные', False, True), ('SUPERNATURAL', 2, u'стихийные существа', False, False), ('MECHANICAL', 3, u'конструкты', False, False), ('BARBARIAN', 4, u'дикари', False, True), ('CIVILIZED', 5, u'цивилизованные существа', True, True), ('COLDBLOODED', 6, u'хладнокровные гады', False, True), ('INSECT', 7, u'насекомые', False, True), ('DEMON', 8, u'демоны', False, False), ('UNDEAD', 9, u'нежить', False, False), ('MONSTER', 10, u'чудовища', False, True))
class OWNER_TYPE(django_rels.DjangoEnum): protocol_value = rels.Column(no_index=False) records = (('SENDER', 0, 'отправитель', personal_messages_pb2.OwnerType. DESCRIPTOR.values_by_name['SENDER'].number), ('RECIPIENT', 1, 'получатель', personal_messages_pb2.OwnerType. DESCRIPTOR.values_by_name['RECIPIENT'].number))
class WEAPON_TYPE(DjangoEnum): damage_types = rels.Column(unique=False, no_index=True) records = (('NONE', 0, 'нет', ()), ('TYPE_1', 1, 'булава', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_2', 2, 'дубина', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_3', 3, 'катар', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_5)), ('TYPE_4', 4, 'кинжал', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_5)), ('TYPE_5', 5, 'кистень', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_6', 6, 'копьё', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_7)), ('TYPE_7', 7, 'меч', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_6)), ('TYPE_8', 8, 'нож', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_5)), ('TYPE_9', 9, 'плеть', (DAMAGE_TYPE.TYPE_4, DAMAGE_TYPE.TYPE_7)), ('TYPE_10', 10, 'посох', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_11', 11, 'сабля', (DAMAGE_TYPE.TYPE_5, DAMAGE_TYPE.TYPE_6)), ('TYPE_12', 12, 'топор', (DAMAGE_TYPE.TYPE_6, )), ('TYPE_14', 14, 'жвалы', (DAMAGE_TYPE.TYPE_3, )), ('TYPE_15', 15, 'клешня', (DAMAGE_TYPE.TYPE_4, DAMAGE_TYPE.TYPE_5)), ('TYPE_16', 16, 'клыки', (DAMAGE_TYPE.TYPE_3, )), ('TYPE_17', 17, 'клюв', (DAMAGE_TYPE.TYPE_7, DAMAGE_TYPE.TYPE_4)), ('TYPE_18', 18, 'когти', (DAMAGE_TYPE.TYPE_4, )), ('TYPE_19', 19, 'кулак', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_20', 20, 'палка', (DAMAGE_TYPE.TYPE_7, )), ('TYPE_21', 21, 'рог', (DAMAGE_TYPE.TYPE_2, )), ('TYPE_22', 22, 'рога', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_7)), ('TYPE_23', 23, 'хопеш', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_5, DAMAGE_TYPE.TYPE_6)), ('TYPE_24', 24, 'шипы', (DAMAGE_TYPE.TYPE_4, DAMAGE_TYPE.TYPE_2)), ('TYPE_25', 25, 'перчатка с когтями', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_4)), ('TYPE_26', 26, 'пила', (DAMAGE_TYPE.TYPE_6, DAMAGE_TYPE.TYPE_4)), ('TYPE_27', 27, 'рукав с лезвием', (DAMAGE_TYPE.TYPE_2, DAMAGE_TYPE.TYPE_4, DAMAGE_TYPE.TYPE_7)), ('TYPE_28', 28, 'полэкс', (DAMAGE_TYPE.TYPE_6, DAMAGE_TYPE.TYPE_2)), ('TYPE_29', 29, 'жало', (DAMAGE_TYPE.TYPE_2, )), ('TYPE_30', 30, 'касание энергетическое', (DAMAGE_TYPE.TYPE_8, )), ('TYPE_31', 31, 'хватательная лапа', (DAMAGE_TYPE.TYPE_7, DAMAGE_TYPE.TYPE_4)))
class MONTHS(DjangoEnum): date_text = rels.Column() records = (('COLD', 1, u'холодный месяц', u'холодного месяца'), ('CRUDE', 2, u'сырой месяц', u'сырого месяца'), ('HOT', 3, u'жаркий месяц', u'жаркого месяца'), ('DRY', 4, u'сухой месяц', u'сухого месяца'))
class MONTH(rels.EnumWithText): date_text = rels.Column() records = (('DRY', 0, 'сухой месяц', 'сухого месяца'), ('HOT', 1, 'жаркий месяц', 'жаркого месяца'), ('CRUDE', 2, 'сырой месяц', 'сырого месяца'), ('COLD', 3, 'холодный месяц', 'холодного месяца'))
class ACHIEVEMENT_TYPE(DjangoEnum): # filtration source = rels.Column(unique=False) records = ( ('TIME', 0, 'Время', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('MONEY', 1, 'Деньги', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('MOBS', 2, 'Монстры', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('ARTIFACTS', 3, 'Артефакты', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('QUESTS', 4, 'Задания', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('DEATHS', 5, 'Смерти', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('PVP_BATTLES_1X1', 6, 'PvP бои', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('PVP_VICTORIES_1X1', 7, 'Процент PvP побед', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('POLITICS_ACCEPTED_BILLS', 8, 'Принятые законы', ACHIEVEMENTS_SOURCE.ACCOUNT), ('POLITICS_VOTES_TOTAL', 9, 'Отданные голосов', ACHIEVEMENTS_SOURCE.ACCOUNT), ('POLITICS_VOTES_FOR', 10, 'Голоса, отданные «за»', ACHIEVEMENTS_SOURCE.ACCOUNT), ('POLITICS_VOTES_AGAINST', 11, 'Голоса, отданные «против»', ACHIEVEMENTS_SOURCE.ACCOUNT), ('KEEPER_HELP_COUNT', 12, 'Помощь герою', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('KEEPER_MIGHT', 13, 'Могущество', ACHIEVEMENTS_SOURCE.ACCOUNT), ('HABITS_HONOR', 14, 'Черты: Честь', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('HABITS_PEACEFULNESS', 15, 'Черты: Миролюбие', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('KEEPER_CARDS_USED', 16, 'Использовано карт', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('KEEPER_CARDS_COMBINED', 17, 'Объединено карт', ACHIEVEMENTS_SOURCE.GAME_OBJECT), ('LEGENDS', 18, 'Легендарный подвиг', ACHIEVEMENTS_SOURCE.NONE) )
class VOTED_TYPE(DjangoEnum): vote_type = rels.Column(unique=False, single_type=False) records = (('NO', 'no', 'не голосовал', None), ('YES', 'yes', 'проголосовал', None), ('FOR', 'for', '«за»', VOTE_TYPE.FOR), ('AGAINST', 'against', '«против»', VOTE_TYPE.AGAINST), ('REFRAINED', 'refrained', '«воздержался»', VOTE_TYPE.REFRAINED) )
class POWER_BONUS_CHANGES(DjangoEnum): bonus = rels.Column() BONUS = c.HERO_POWER_PER_DAY * 4 * 4 * 4 # like 4-th grade power card records = (('DOWN', 0, 'уменьшить на %d' % BONUS, -BONUS), ('NOT_CHANGE', 1, 'не изменять', 0), ('UP', 2, 'увеличить на %d' % BONUS, BONUS))
class ROAD_TRANSPORT(rels.Relation): value = rels.Column(external=True, unique=True) text = rels.Column(unique=False) transport = rels.Column() records = ( (0, u'среди сплошного бездорожья нет и намёка на дорогу', 0.0), (1, u'среди бездорожья иногда проглядывают остатки заваленной буреломом да разбитыми телегами дороги', 0.5), (2, u'небольшая тропка петляет по округе, иногда переходя в широкие участки, как будто вспоминая о былых временах', 0.6), (3, u'старая неухоженная дорога то и дело пропадает из виду, скрываемая недавними изменениями ландшафта', 0.7), (4, u'колдобины на пару с остатками укатанного полотна пытаются сойти за дорогу', 0.8), (5, u'слегка потрёпанная грунтовая дорога периодически оборачивается колдобинами в местах с ослабевшей магической защитой', 0.9), (6, u'грунтовая дорога петляет, обходя наиболее изменчивые места ландшафта', 1.0), (7, u'надёжная ухоженная грунтовая дорога так и приглашает ходоков быстрее двигаться к своей цели', 1.1), (8, u'спрямлённая грунтовая дорога весело уходит вдаль, защищаемая от изменений редкими магическими башнями', 1.2), (9, u'прямая мощёная дорога то и дело прерывается грунтовыми участками в самых изменчивых своих местах', 1.3), (10, u'добротный мощёный тракт петляет, отгородившись магическими башнями от самых «диких» участков ландшафта', 1.4), (11, u'от горизонта до горизонта стрелой протянулся широкий мощёный тракт; через равные промежутки вдоль дороги стоят ухоженные магические башни, защищающие его от изменений', 1.5) )
class BILL_STATE(DjangoEnum): break_dependent_bills = rels.Column(unique=False) records = (('VOTING', 1, 'на голосовании', False), ('ACCEPTED', 2, 'принята', False), ('REJECTED', 3, 'отклонена', True), ('REMOVED', 4, 'удалена', True), ('STOPPED', 5, 'потеряла смысл', True))
class BILL_TYPE(DjangoEnum): stability = rels.Column(unique=False, single_type=False) enabled = rels.Column(unique=False) records = (('PLACE_RENAMING', 0, 'переименование города', 1.5 * c.PLACE_STABILITY_UNIT, True), ('PERSON_REMOVE', 1, 'исключить горожанина из Совета', None, False), ('PLACE_DESCRIPTION', 2, 'изменить описание города', 0.4 * c.PLACE_STABILITY_UNIT, True), ('PLACE_CHANGE_MODIFIER', 3, 'изменить специализацию города', 0.4 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_CREATE', 4, 'возвести постройку', 0.4 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_DESTROY', 5, 'разрушить постройку', 1.0 * c.PLACE_STABILITY_UNIT, True), ('BUILDING_RENAMING', 6, 'переименовать постройку', 0.2 * c.PLACE_STABILITY_UNIT, True), ('PLACE_RESOURCE_EXCHANGE', 7, 'обмен ресурсами', 0.8 * c.PLACE_STABILITY_UNIT, True), ('BILL_DECLINE', 8, 'отмена записи в Книге Судеб', 0.4 * c.PLACE_STABILITY_UNIT, True), ('PLACE_RESOURCE_CONVERSION', 9, 'изменение параметров города', 0.8 * c.PLACE_STABILITY_UNIT, True), ('PERSON_CHRONICLE', 10, 'запись в летописи о Мастере' , 0.2 * c.PLACE_STABILITY_UNIT, True), ('PLACE_CHRONICLE', 11, 'запись в летописи о городе', 0.2 * c.PLACE_STABILITY_UNIT, True), ('PERSON_MOVE', 12, 'переезд Мастера', 2.0 * c.PLACE_STABILITY_UNIT, True), ('PLACE_CHANGE_RACE', 13, 'изменить расу города', 0.4 * c.PLACE_STABILITY_UNIT, True), ('PERSON_ADD_SOCIAL_CONNECTION', 14, 'добавить социальную связь', 0.6 * c.PLACE_STABILITY_UNIT, True), ('PERSON_REMOVE_SOCIAL_CONNECTION', 15, 'удалить социальную связь', 0.6 * c.PLACE_STABILITY_UNIT, True))
class QUINT(rels.EnumWithText): date_text = rels.Column() records = ( ('YOUNG', 0, 'юный квинт', 'юного квинта'), ('MATURE', 1, 'зрелый квинт', 'зрелого квинта'), ('ADULT', 2, 'взрослый квинт', 'взрослого квинта'), ('WISE', 3, 'мудрый квинт', 'мудрого квинта'), ('OLD', 4, 'старый квинт', 'старого квинта'), ('DEAD', 5, 'мёртвый квинт', 'мёртвого квинта'), )
class POWER_BONUS_CHANGES(DjangoEnum): bonus_delta = rels.Column() BONUS_MULTIPLIER = 20 records = (('DOWN', 0, u'уменьшить на %.2f%%' % (c.HERO_POWER_BONUS * 100 * BONUS_MULTIPLIER), -c.HERO_POWER_BONUS * BONUS_MULTIPLIER), ('NOT_CHANGE', 1, u'не изменять', 0.0), ('UP', 2, u'увеличить на %.2f%%' % (c.HERO_POWER_BONUS * 100 * BONUS_MULTIPLIER), c.HERO_POWER_BONUS * BONUS_MULTIPLIER))
class PHYSICS_DATE(rels.EnumWithText): intervals = rels.Column(no_index=True, unique=False) records = (('FULL_MOON', 0, 'Полнолуние', [((0, 42), (0, 47)), ((1, 42), (1, 47)), ((2, 42), (2, 47)), ((3, 42), (3, 47))]), ('NEW_MOON', 1, 'Новолуние', [ ((0, 88), (1, 1)), ((1, 88), (2, 1)), ((2, 88), (3, 1)), ((3, 88), (3, 89)), ((1, 0), (1, 1)) ]), ('EQUINOX', 2, 'Равноденствие', [((0, 45), (0, 45)), ((2, 45), (2, 45))]), ('SOLSTICE', 3, 'Солнцестояние', [((1, 45), (1, 45)), ((3, 45), (3, 45))]))
class QUINT_DAY(rels.EnumWithText): date_text = rels.Column() records = (('DAY_1', 0, '1', '1'), ('DAY_2', 1, '2', '2'), ('DAY_3', 2, '3', '3'), ('DAY_4', 3, '4', '4'), ('DAY_5', 4, '5', '5'), ('DAY_6', 5, '6', '6'), ('DAY_7', 6, '7', '7'), ('DAY_8', 7, '8', '8'), ('DAY_9', 8, '9', '9'), ('DAY_10', 9, '10', '10'), ('DAY_11', 10, '11', '11'), ('DAY_12', 11, '12', '12'), ('DAY_13', 12, '13', '13'), ('DAY_14', 13, '14', '14'), ('DAY_15', 14, '15', '15'))
class LEXICON_KEY(rels.Relation): name = rels.Column(primary=True, no_index=True) value = rels.Column(external=True, no_index=True) text = rels.Column(unique=False) group = rels.Column(unique=False) description = rels.Column(unique=False) variables = rels.Column(unique=False, no_index=True) ui_text = rels.Column(unique=False, no_index=True, single_type=False) records = get_key_records()
class ACHIEVEMENT_GROUP(DjangoEnum): # visualization slug = rels.Column(no_index=False) records = (('TIME', 0, 'Время', 'time'), ('MONEY', 1, 'Деньги', 'money'), ('MOBS', 2, 'Монстры', 'mobs'), ('ARTIFACTS', 3, 'Артефакты', 'artifacts'), ('QUESTS', 4, 'Задания', 'quests'), ('DEATHS', 5, 'Смерти', 'deaths'), ('PVP', 6, 'PvP', 'pvp'), ('POLITICS', 7, 'Книга Судеб', 'politics'), ('KEEPER', 8, 'Хранитель', 'keeper'), ('CHARACTER', 9, 'Характер', 'character'), ('CARDS', 10, 'Карты Судьбы', 'cards'), ('LEGENDS', 11, 'Легенды', 'legends'))
class REAL_FEAST(rels.EnumWithText): intervals = rels.Column(no_index=True, unique=False) records = ( ('JESTER_DAYS', 0, 'Дни шута (с 31-ого марта по 2-ого апреля)', [(datetime.datetime(year=datetime.MINYEAR, month=3, day=31), datetime.datetime(year=datetime.MINYEAR, month=4, day=2))]), ('GREAT_EXALTATION', 1, 'Великосвершенье (с 30-ого декабря по 2-ого января)', [ (datetime.datetime(year=datetime.MINYEAR, month=12, day=30), datetime.datetime(year=datetime.MINYEAR, month=12, day=31)), (datetime.datetime(year=datetime.MINYEAR, month=1, day=1), datetime.datetime(year=datetime.MINYEAR, month=1, day=2)) ]), )
class BILL_TYPE(DjangoEnum): stability = rels.Column(unique=False) records = ( ('PLACE_RENAMING', 0, u'переименование города', 0.15), ('PERSON_REMOVE', 1, u'исключить горожанина из Совета', 0.10), ('PLACE_DESCRIPTION', 2, u'изменить описание города', 0.04), ('PLACE_MODIFIER', 3, u'изменить специализацию города', 0.04), ('BUILDING_CREATE', 4, u'возвести постройку', 0.04), ('BUILDING_DESTROY', 5, u'разрушить постройку', 0.10), ('BUILDING_RENAMING', 6, u'переименовать постройку', 0.02), ('PLACE_RESOURCE_EXCHANGE', 7, u'обмен ресурсами', 0.08), ('BILL_DECLINE', 8, u'отмена закона', 0.04), ('PLACE_RESOURCE_CONVERSION', 9, u'изменение параметров города', 0.08), ('PERSON_CHRONICLE', 10, u'запись в летописи о советнике', 0.02), ('PLACE_CHRONICLE', 11, u'запись в летописи о городе', 0.02), )
class DATE(rels.EnumWithText): intervals = rels.Column(no_index=True, unique=False) records = (('NEW_YEAR', 0, 'Новый год', [ ((0, 0), (0, 0)) ]), ('KEEPERS_DAY', 1, 'Хранимый День', [ ((0, 59), (0, 59)) ]), ('HEROES_DAY', 2, 'Героев День', [ ((1, 31), (1, 31)) ]), ('HARVEST_FESTIVAL', 3, 'Праздник урожая', [ ((2, 19), (2, 19)) ]), ('PRECONVERGENCE', 4, 'Предсхождение', [ ((2, 59), (2, 59)) ]), ('CONVERGENCE', 5, 'Схождение', [ ((2, 60), (2, 88)) ]), ('DEAD_NIGHT', 6, 'Мёртвая ночь', [ ((3, 53), (3, 54)) ]), ('REMEMBRANCE_OF_THE_FIRST', 7, 'Помин Первых', [((3, 88), (3, 88))]))