Ejemplo n.º 1
0
class Place(models.Model):

    x = models.BigIntegerField(null=False)
    y = models.BigIntegerField(null=False)

    created_at = models.DateTimeField(auto_now_add=True)
    created_at_turn = models.BigIntegerField(default=0)

    updated_at_turn = models.BigIntegerField(default=0)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    is_frontier = models.BooleanField(default=False)

    description = models.TextField(null=False, default='', blank=True)

    data = models.TextField(null=False, default='{}')

    habit_honor_positive = models.FloatField(default=0)
    habit_honor_negative = models.FloatField(default=0)
    habit_peacefulness_positive = models.FloatField(default=0)
    habit_peacefulness_negative = models.FloatField(default=0)

    habit_honor = models.FloatField(default=0)
    habit_peacefulness = models.FloatField(default=0)

    modifier = RelationIntegerField(
        relation=modifiers.CITY_MODIFIERS,
        null=False,
        default=modifiers.CITY_MODIFIERS.NONE.value)
    race = RelationIntegerField(relation=RACE)

    persons_changed_at_turn = models.BigIntegerField(default=0)

    def __str__(self):
        return s11n.from_json(self.data)['name']['forms'][0]
Ejemplo n.º 2
0
class Person(models.Model):
    MAX_NAME_LENGTH = 100

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    created_at_turn = models.IntegerField(null=False, default=0)

    out_game_at = models.DateTimeField(null=False, default=datetime.datetime(2000, 1, 1))

    place = models.ForeignKey('places.Place', related_name='persons', on_delete=models.PROTECT)

    state = RelationIntegerField(relation=relations.PERSON_STATE)

    gender = RelationIntegerField(relation=GENDER, relation_column='value')
    race = RelationIntegerField(relation=RACE, relation_column='value')

    type = RelationIntegerField(relation=relations.PERSON_TYPE, relation_column='value')

    friends_number = models.IntegerField(default=0)

    enemies_number = models.IntegerField(default=0)

    name = models.CharField(max_length=MAX_NAME_LENGTH, null=False, db_index=True)

    data = models.TextField(null=False, default=u'{}')

    def __unicode__(self): return u'%s from %s' % (self.name, self.place)
Ejemplo n.º 3
0
class Achievement(models.Model):

    CAPTION_MAX_LENGTH = 128
    DESCRIPTION_MAX_LENGTH = 1024

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    group = RelationIntegerField(relation=ACHIEVEMENT_GROUP, db_index=True)
    type = RelationIntegerField(relation=ACHIEVEMENT_TYPE, db_index=True)

    caption = models.CharField(max_length=CAPTION_MAX_LENGTH)
    description = models.CharField(max_length=DESCRIPTION_MAX_LENGTH)

    order = models.IntegerField()

    approved = models.BooleanField(default=False)

    barrier = models.IntegerField()

    points = models.IntegerField()

    item_1 = models.ForeignKey('collections.Item', null=True, default=None, related_name='+', on_delete=models.SET_NULL)
    item_2 = models.ForeignKey('collections.Item', null=True, default=None, related_name='+', on_delete=models.SET_NULL)
    item_3 = models.ForeignKey('collections.Item', null=True, default=None, related_name='+', on_delete=models.SET_NULL)

    class Meta:
        permissions = (('edit_achievement', u'Может создавать и редактировать достижения'),)
Ejemplo n.º 4
0
class Place(models.Model):

    MAX_NAME_LENGTH = 150

    x = models.BigIntegerField(null=False)
    y = models.BigIntegerField(null=False)

    created_at = models.DateTimeField(auto_now_add=True)
    created_at_turn = models.BigIntegerField(default=0)

    updated_at_turn = models.BigIntegerField(default=0)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    is_frontier = models.BooleanField(default=False)

    # TODO: remove
    name = models.CharField(max_length=MAX_NAME_LENGTH,
                            null=False,
                            db_index=True)

    description = models.TextField(null=False, default=u'', blank=True)

    size = models.IntegerField(null=False)
    expected_size = models.IntegerField(default=0)

    goods = models.IntegerField(default=0)
    keepers_goods = models.IntegerField(default=0)

    production = models.IntegerField(default=c.PLACE_GOODS_BONUS)
    safety = models.FloatField(default=1.0 - c.BATTLES_PER_TURN)
    freedom = models.FloatField(default=1.0)
    transport = models.FloatField(default=1.0)
    tax = models.FloatField(default=0.0)
    stability = models.FloatField(default=1.0)

    data = models.TextField(null=False, default=u'{}')

    heroes_number = models.IntegerField(default=0)

    habit_honor_positive = models.FloatField(default=0)
    habit_honor_negative = models.FloatField(default=0)
    habit_peacefulness_positive = models.FloatField(default=0)
    habit_peacefulness_negative = models.FloatField(default=0)

    habit_honor = models.FloatField(default=0)
    habit_peacefulness = models.FloatField(default=0)

    modifier = RelationIntegerField(relation=relations.CITY_MODIFIERS,
                                    null=True,
                                    default=None,
                                    blank=True)
    race = RelationIntegerField(relation=RACE)

    persons_changed_at_turn = models.BigIntegerField(default=0)

    class Meta:
        ordering = ('name', )

    def __unicode__(self):
        return self.name
Ejemplo n.º 5
0
class Invoice(models.Model):

    created_at = models.DateTimeField(auto_now_add=True,
                                      null=False,
                                      db_index=True)
    updated_at = models.DateTimeField(auto_now=True, null=False, db_index=True)

    recipient_type = RelationIntegerField(relation=ENTITY_TYPE,
                                          relation_column='value',
                                          db_index=True)
    recipient_id = models.BigIntegerField(db_index=True)

    sender_type = RelationIntegerField(relation=ENTITY_TYPE,
                                       relation_column='value',
                                       db_index=True)
    sender_id = models.BigIntegerField(db_index=True)

    state = RelationIntegerField(relation=INVOICE_STATE,
                                 relation_column='value',
                                 db_index=True)

    currency = RelationIntegerField(relation=CURRENCY_TYPE,
                                    relation_column='value',
                                    db_index=True)
    amount = models.BigIntegerField()

    operation_uid = models.CharField(max_length=64, db_index=True)

    description_for_recipient = models.TextField()
    description_for_sender = models.TextField()

    class Meta:
        index_together = (('recipient_type', 'recipient_id', 'currency'),
                          ('sender_type', 'sender_id', 'currency'))
Ejemplo n.º 6
0
class Post(models.Model):

    thread = models.ForeignKey(Thread, null=False, on_delete=models.PROTECT)

    created_at = models.DateTimeField(auto_now_add=True, null=False)

    created_at_turn = models.BigIntegerField(default=0)

    updated_at = models.DateTimeField(auto_now=True, null=True)

    updated_at_turn = models.BigIntegerField(default=0)

    author = models.ForeignKey('accounts.Account', null=True, related_name='forum_posts', on_delete=models.SET_NULL)

    text = models.TextField(null=False, blank=True, default='')

    markup_method = RelationIntegerField(relation=MARKUP_METHOD, relation_column='value')

    state = RelationIntegerField(relation=POST_STATE, relation_column='value', db_index=True)
    removed_by = RelationIntegerField(relation=POST_REMOVED_BY, relation_column='value', null=True, default=None)
    remove_initiator = models.ForeignKey('accounts.Account', null=True, blank=True, related_name='+', on_delete=models.SET_NULL)

    technical = models.BooleanField(default=False)

    class Meta:
        permissions = (("moderate_post", u"Может редактировать сообщения пользователей"), )

    def __unicode__(self): return u'thread %d, post %d' % (self.thread_id, self.id)
Ejemplo n.º 7
0
class Template(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now_add=True, null=False)

    author = models.ForeignKey(project_settings.AUTH_USER_MODEL,
                               null=True,
                               blank=True,
                               on_delete=models.SET_NULL)
    parent = models.OneToOneField('linguistics.Template',
                                  null=True,
                                  blank=True,
                                  on_delete=models.SET_NULL)

    raw_template = models.TextField(db_index=True)
    data = models.TextField()

    state = RelationIntegerField(relation=relations.TEMPLATE_STATE,
                                 db_index=True)
    key = RelationIntegerField(relation=keys.LEXICON_KEY, db_index=True)

    errors_status = RelationIntegerField(
        relation=relations.TEMPLATE_ERRORS_STATUS, default=0, db_index=True)

    class Meta:
        permissions = (
            ("moderate_template", u"Может модерировать шаблоны фраз"),
            ("edit_template", u"Может редактировать шаблоны фраз"),
        )
Ejemplo n.º 8
0
class Word(models.Model):
    MAX_FORM_LENGTH = 64

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now_add=True, null=False)

    author = models.ForeignKey(project_settings.AUTH_USER_MODEL,
                               null=True,
                               blank=True,
                               on_delete=models.SET_NULL)
    parent = models.OneToOneField('linguistics.Word',
                                  null=True,
                                  blank=True,
                                  on_delete=models.SET_NULL)

    normal_form = models.CharField(max_length=MAX_FORM_LENGTH)
    forms = models.TextField(db_index=True)

    state = RelationIntegerField(relation=relations.WORD_STATE, db_index=True)
    type = RelationIntegerField(
        relation=utg_relations.WORD_TYPE,
        db_index=True,
        choices=[(record, record.text)
                 for record in utg_relations.WORD_TYPE.records])

    used_in_ingame_templates = models.IntegerField(default=0)
    used_in_onreview_templates = models.IntegerField(default=0)
    used_in_status = RelationIntegerField(
        relation=relations.WORD_USED_IN_STATUS, default=2, db_index=True)

    class Meta:
        unique_together = (('normal_form', 'type', 'state'), )
        permissions = (("moderate_word", u"Может модерировать слова"), )
Ejemplo n.º 9
0
class CompanionRecord(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    state = RelationIntegerField(relation=relations.STATE, db_index=True)
    dedication = RelationIntegerField(relation=relations.DEDICATION,
                                      db_index=True)
    archetype = RelationIntegerField(relation=game_relations.ARCHETYPE,
                                     blank=True)
    mode = RelationIntegerField(relation=relations.MODE, blank=True)

    type = RelationIntegerField(relation=game_relations.BEING_TYPE,
                                db_index=True)

    communication_verbal = RelationIntegerField(
        relation=game_relations.COMMUNICATION_VERBAL, db_index=True)
    communication_gestures = RelationIntegerField(
        relation=game_relations.COMMUNICATION_GESTURES, db_index=True)
    communication_telepathic = RelationIntegerField(
        relation=game_relations.COMMUNICATION_TELEPATHIC, db_index=True)

    intellect_level = RelationIntegerField(
        relation=game_relations.INTELLECT_LEVEL, db_index=True)

    max_health = models.IntegerField(default=1)

    data = models.TextField(null=False, default='{}')

    class Meta:
        permissions = (
            ("create_companionrecord", u"Может создавать спутников"),
            ("moderate_companionrecord", u"Может утверждать спутников"),
        )
Ejemplo n.º 10
0
class SocialConnection(models.Model):

    created_at = models.DateTimeField(auto_now_add=True)
    created_at_turn = models.BigIntegerField()

    out_game_at = models.DateTimeField(null=True, default=None)
    out_game_at_turn = models.BigIntegerField(null=True, default=None)

    person_1 = models.ForeignKey(Person, related_name='+', on_delete=models.CASCADE)
    person_2 = models.ForeignKey(Person, related_name='+', on_delete=models.CASCADE)

    connection = RelationIntegerField(relation=relations.SOCIAL_CONNECTION_TYPE)

    state = RelationIntegerField(relation=relations.SOCIAL_CONNECTION_STATE)
Ejemplo n.º 11
0
class Record(models.Model):

    date = models.DateTimeField(null=False)
    type = RelationIntegerField(relation=relations.RECORD_TYPE, db_index=True)

    value_int = models.BigIntegerField()
    value_float = models.FloatField()
Ejemplo n.º 12
0
class Post(models.Model):

    CAPTION_MIN_LENGTH = 10
    CAPTION_MAX_LENGTH = 256

    author = models.ForeignKey('accounts.Account', null=True, related_name='+', on_delete=models.SET_NULL)

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    created_at_turn = models.BigIntegerField()

    caption = models.CharField(max_length=CAPTION_MAX_LENGTH)
    text = models.TextField(null=False, blank=True, default='')

    state = RelationIntegerField(relation=POST_STATE, relation_column='value', db_index=True)

    moderator = models.ForeignKey('accounts.Account', null=True, blank=True, related_name='+', on_delete=models.SET_NULL)

    votes = models.IntegerField(default=0)

    # we should not remove post when ocasionally remove forum thread
    forum_thread = models.ForeignKey('forum.Thread', null=True, blank=True, related_name='+', on_delete=models.SET_NULL)

    class Meta:
        permissions = (("moderate_post", u"Может редактировать сообщения пользователей"), )

    def __unicode__(self): return self.caption
Ejemplo n.º 13
0
class ChangeCredentialsTask(models.Model):

    created_at = models.DateTimeField(auto_now_add=True, db_index=True)

    updated_at = models.DateTimeField(auto_now=True, db_index=True)

    state = RelationIntegerField(
        relation=relations.CHANGE_CREDENTIALS_TASK_STATE,
        relation_column='value',
        db_index=True)

    comment = models.CharField(max_length=256,
                               blank=True,
                               null=True,
                               default='')

    account = models.ForeignKey(Account,
                                related_name='+',
                                on_delete=models.CASCADE)

    old_email = models.EmailField(max_length=254, null=True)

    new_email = models.EmailField(max_length=254, null=True)

    new_password = models.TextField(default=None,
                                    null=True)  # django password hash

    new_nick = models.CharField(default=None,
                                null=True,
                                max_length=Account.MAX_NICK_LENGTH)

    uuid = models.CharField(max_length=32, db_index=True)

    relogin_required = models.BooleanField(blank=True, default=False)
Ejemplo n.º 14
0
class Invoice(models.Model):

    XSOLLA_ID_MAX_LENGTH = 255
    XSOLLA_V1_MAX_LENGTH = 255
    XSOLLA_V2_MAX_LENGTH = 200
    XSOLLA_V3_MAX_LENGTH = 100
    COMMENT_MAX_LENGTH = 255
    REQUEST_URL_LENGTH = 1024

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    state = RelationIntegerField(null=True,
                                 relation=INVOICE_STATE,
                                 relation_column='value',
                                 db_index=True)

    bank_id = models.BigIntegerField()
    bank_amount = models.BigIntegerField()
    bank_invoice = models.OneToOneField(
        'bank.Invoice', null=True, related_name='+', on_delete=models.SET_NULL
    )  # settuped when payments deposited to account

    xsolla_id = models.CharField(max_length=XSOLLA_ID_MAX_LENGTH,
                                 db_index=True)

    xsolla_v1 = models.CharField(max_length=XSOLLA_V1_MAX_LENGTH)
    xsolla_v2 = models.CharField(max_length=XSOLLA_V2_MAX_LENGTH, null=True)
    xsolla_v3 = models.CharField(max_length=XSOLLA_V3_MAX_LENGTH, null=True)

    comment = models.CharField(max_length=COMMENT_MAX_LENGTH,
                               null=False,
                               default=u'')

    pay_result = RelationIntegerField(null=True,
                                      relation=PAY_RESULT,
                                      relation_column='value',
                                      db_index=True)

    test = models.BooleanField(blank=True, default=False)

    date = models.DateTimeField(null=True)

    request_url = models.CharField(max_length=REQUEST_URL_LENGTH)

    class Meta:
        unique_together = (('xsolla_id', 'test'), )
Ejemplo n.º 15
0
class Account(models.Model):

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    entity_type = RelationIntegerField(relation=ENTITY_TYPE,
                                       relation_column='value',
                                       db_index=True)
    entity_id = models.BigIntegerField()

    currency = RelationIntegerField(relation=CURRENCY_TYPE,
                                    relation_column='value',
                                    db_index=True)
    amount = models.BigIntegerField(default=0)

    class Meta:
        unique_together = (('entity_id', 'entity_type', 'currency'), )
Ejemplo n.º 16
0
class RecordToActor(models.Model):

    role = RelationIntegerField(relation=ACTOR_ROLE, relation_column='value')

    record = models.ForeignKey(Record, on_delete=models.CASCADE)
    actor = models.ForeignKey(Actor, on_delete=models.PROTECT)

    def __str__(self): return '<%d, %d>' % (self.record_id, self.actor_id)
Ejemplo n.º 17
0
class Membership(models.Model):

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    clan = models.ForeignKey(Clan, on_delete=models.PROTECT)
    account = models.OneToOneField('accounts.Account', on_delete=models.PROTECT)

    role = RelationIntegerField(relation=MEMBER_ROLE, relation_column='value')
Ejemplo n.º 18
0
class Message(models.Model):

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    processed_at = models.DateTimeField(null=True, blank=True)

    state = RelationIntegerField(relation=MESSAGE_STATE,
                                 relation_column='value',
                                 db_index=True)

    handler = models.TextField(default='')
Ejemplo n.º 19
0
class Contribution(models.Model):

    created_at = models.DateTimeField(auto_now_add=True,
                                      null=False,
                                      db_index=True)
    account = models.ForeignKey(project_settings.AUTH_USER_MODEL,
                                on_delete=models.CASCADE)

    state = RelationIntegerField(relation=relations.CONTRIBUTION_STATE,
                                 db_index=True)
    type = RelationIntegerField(relation=relations.CONTRIBUTION_TYPE,
                                db_index=True)
    source = RelationIntegerField(relation=relations.CONTRIBUTION_SOURCE,
                                  db_index=True)

    # if entity_id < 0 it is id of old phrase_candidate entity
    entity_id = models.BigIntegerField(db_index=True)

    class Meta:
        unique_together = (('type', 'account', 'entity_id'), )
Ejemplo n.º 20
0
class MobRecord(models.Model):

    MAX_UUID_LENGTH = 32
    MAX_NAME_LENGTH = 32

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    editor = models.ForeignKey('accounts.Account',
                               null=True,
                               related_name='+',
                               on_delete=models.SET_NULL)

    state = RelationIntegerField(relation=MOB_RECORD_STATE, db_index=True)
    type = RelationIntegerField(relation=MOB_TYPE, db_index=True)

    archetype = RelationIntegerField(relation=game_relations.ARCHETYPE,
                                     db_index=True)

    level = models.IntegerField(default=0)

    uuid = models.CharField(max_length=MAX_UUID_LENGTH, unique=True)

    name = models.CharField(max_length=MAX_NAME_LENGTH,
                            unique=True,
                            null=False,
                            db_index=True)

    description = models.TextField(null=False, default=u'')

    abilities = models.TextField(null=False)

    terrains = models.TextField(null=False)

    data = models.TextField(null=False, default='{}')

    class Meta:
        permissions = (
            ("create_mobrecord", u"Может предлагать мобов"),
            ("moderate_mobrecord", u"Может утверждать мобов"),
        )
Ejemplo n.º 21
0
class MobRecord(models.Model):

    MAX_UUID_LENGTH = 32
    MAX_NAME_LENGTH = 32

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    editor = models.ForeignKey('accounts.Account',
                               null=True,
                               related_name='+',
                               on_delete=models.SET_NULL)

    state = RelationIntegerField(relation=relations.MOB_RECORD_STATE,
                                 db_index=True)
    type = RelationIntegerField(relation=game_relations.BEING_TYPE,
                                db_index=True)

    is_mercenary = models.BooleanField(default=False)
    is_eatable = models.BooleanField(default=False)

    archetype = RelationIntegerField(relation=game_relations.ARCHETYPE,
                                     db_index=True)

    level = models.IntegerField(default=0)

    uuid = models.CharField(max_length=MAX_UUID_LENGTH, unique=True)

    name = models.CharField(max_length=MAX_NAME_LENGTH,
                            unique=True,
                            null=False,
                            db_index=True)

    description = models.TextField(null=False, default='')

    abilities = models.TextField(null=False)

    terrains = models.TextField(null=False)

    data = models.TextField(null=False, default='{}')

    communication_verbal = RelationIntegerField(
        relation=game_relations.COMMUNICATION_VERBAL, db_index=True)
    communication_gestures = RelationIntegerField(
        relation=game_relations.COMMUNICATION_GESTURES, db_index=True)
    communication_telepathic = RelationIntegerField(
        relation=game_relations.COMMUNICATION_TELEPATHIC, db_index=True)

    intellect_level = RelationIntegerField(
        relation=game_relations.INTELLECT_LEVEL, db_index=True)

    class Meta:
        permissions = (
            ("create_mobrecord", "Может предлагать мобов"),
            ("moderate_mobrecord", "Может утверждать мобов"),
        )
Ejemplo n.º 22
0
class CompanionRecord(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    state = RelationIntegerField(relation=relations.STATE, db_index=True)
    type = RelationIntegerField(relation=relations.TYPE, db_index=True)
    dedication = RelationIntegerField(relation=relations.DEDICATION,
                                      db_index=True)
    archetype = RelationIntegerField(relation=game_relations.ARCHETYPE,
                                     blank=True)
    mode = RelationIntegerField(relation=relations.MODE, blank=True)

    max_health = models.IntegerField(default=1)

    data = models.TextField(null=False, default='{}')

    class Meta:
        permissions = (
            ("create_companionrecord", u"Может создавать спутников"),
            ("moderate_companionrecord", u"Может утверждать спутников"),
        )
Ejemplo n.º 23
0
class ArtifactRecord(models.Model):

    MAX_UUID_LENGTH = 32
    MAX_NAME_LENGTH = 32

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    updated_at = models.DateTimeField(auto_now=True, null=False)

    editor = models.ForeignKey('accounts.Account', null=True, related_name='+', blank=True, on_delete=models.SET_NULL)

    type = RelationIntegerField(relation=relations.ARTIFACT_TYPE, relation_column='value')
    power_type = RelationIntegerField(relation=relations.ARTIFACT_POWER_TYPE, relation_column='value')
    state = RelationIntegerField(relation=relations.ARTIFACT_RECORD_STATE, relation_column='value')

    rare_effect = RelationIntegerField(relation=relations.ARTIFACT_EFFECT, relation_column='value')
    epic_effect = RelationIntegerField(relation=relations.ARTIFACT_EFFECT, relation_column='value')

    special_effect = RelationIntegerField(relation=relations.ARTIFACT_EFFECT, relation_column='value', default=relations.ARTIFACT_EFFECT.NO_EFFECT.value)

    level = models.IntegerField(default=0)

    uuid = models.CharField(max_length=MAX_UUID_LENGTH, unique=True)

    name = models.CharField(max_length=MAX_NAME_LENGTH, unique=True, null=False, db_index=True)

    description = models.TextField(null=False, default=u'', blank=True)

    mob = models.ForeignKey('mobs.MobRecord', null=True, related_name='+', blank=True, on_delete=models.SET_NULL)

    data = models.TextField(null=False, default='{}')

    class Meta:
        permissions = (("create_artifactrecord", u"Может предлагать артефакты"),
                       ("moderate_artifactrecord", u"Может утверждать артефакты"),)
Ejemplo n.º 24
0
class Record(models.Model):

    type = RelationIntegerField(relation=RECORD_TYPE, relation_column='value', db_index=True)

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    created_at_turn = models.IntegerField(null=False)

    text = models.TextField(null=False, blank=True)

    actors = models.ManyToManyField(Actor, through='RecordToActor')

    def __str__(self):
        return self.type.text
Ejemplo n.º 25
0
class ResourceExchange(models.Model):

    created_at = models.DateTimeField(auto_now_add=True)

    place_1 = models.ForeignKey(Place,
                                related_name='+',
                                null=True,
                                on_delete=models.CASCADE)
    place_2 = models.ForeignKey(Place,
                                related_name='+',
                                null=True,
                                on_delete=models.CASCADE)

    resource_1 = RelationIntegerField(
        relation=relations.RESOURCE_EXCHANGE_TYPE, relation_column='value')
    resource_2 = RelationIntegerField(
        relation=relations.RESOURCE_EXCHANGE_TYPE, relation_column='value')

    bill = models.ForeignKey('bills.Bill',
                             blank=True,
                             null=True,
                             related_name='+',
                             on_delete=models.SET_NULL)
Ejemplo n.º 26
0
class Building(models.Model):

    created_at = models.DateTimeField(auto_now_add=True, null=False)
    created_at_turn = models.BigIntegerField(default=0)

    x = models.BigIntegerField(null=False)
    y = models.BigIntegerField(null=False)

    state = RelationIntegerField(relation=relations.BUILDING_STATE,
                                 relation_column='value',
                                 db_index=True)
    type = RelationIntegerField(relation=relations.BUILDING_TYPE,
                                relation_column='value')

    integrity = models.FloatField(default=1.0, null=False)

    place = models.ForeignKey(Place, null=False, on_delete=models.CASCADE)

    person = models.OneToOneField('persons.Person',
                                  null=False,
                                  on_delete=models.CASCADE)

    data = models.TextField(null=False, default='{}')
Ejemplo n.º 27
0
class HeroPreferences(models.Model):

    hero = models.ForeignKey(Hero, on_delete=models.CASCADE)

    energy_regeneration_type = RelationIntegerField(
        null=False, relation=relations.ENERGY_REGENERATION)
    mob = models.ForeignKey('mobs.MobRecord',
                            null=True,
                            default=None,
                            blank=True,
                            on_delete=models.PROTECT)
    place = models.ForeignKey('places.Place',
                              null=True,
                              default=None,
                              related_name='+',
                              blank=True,
                              on_delete=models.PROTECT)
    friend = models.ForeignKey('persons.Person',
                               null=True,
                               default=None,
                               related_name='+',
                               blank=True,
                               on_delete=models.PROTECT)
    enemy = models.ForeignKey('persons.Person',
                              null=True,
                              default=None,
                              related_name='+',
                              blank=True,
                              on_delete=models.PROTECT)
    equipment_slot = RelationIntegerField(relation=relations.EQUIPMENT_SLOT,
                                          null=True,
                                          default=None,
                                          blank=True)
    risk_level = RelationIntegerField(relation=relations.RISK_LEVEL)
    favorite_item = RelationIntegerField(relation=relations.EQUIPMENT_SLOT,
                                         null=True,
                                         default=None,
                                         blank=True)
    archetype = RelationIntegerField(relation=game_relations.ARCHETYPE,
                                     null=True,
                                     default=None,
                                     blank=True)
    companion_dedication = RelationIntegerField(
        relation=relations.COMPANION_DEDICATION,
        null=True,
        default=None,
        blank=True)
    companion_empathy = RelationIntegerField(
        relation=relations.COMPANION_EMPATHY,
        null=True,
        default=None,
        blank=True)
Ejemplo n.º 28
0
class Award(models.Model):

    account = models.ForeignKey(Account,
                                related_name='+',
                                null=False,
                                on_delete=models.CASCADE)

    type = RelationIntegerField(relation=relations.AWARD_TYPE,
                                relation_column='value',
                                db_index=True)

    description = models.TextField(default='', blank=True)

    created_at = models.DateTimeField(auto_now_add=True, db_index=True)
    updated_at = models.DateTimeField(auto_now=True, db_index=True)
Ejemplo n.º 29
0
class Vote(models.Model):

    created_at = models.DateTimeField(auto_now_add=True, null=False)

    owner = models.ForeignKey('accounts.Account',
                              null=False,
                              related_name='+',
                              on_delete=models.CASCADE)

    bill = models.ForeignKey(Bill, null=False, on_delete=models.CASCADE)

    type = RelationIntegerField(relation=relations.VOTE_TYPE, db_index=True)

    class Meta:
        unique_together = (('owner', 'bill'), )
Ejemplo n.º 30
0
class Battle1x1Result(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, null=False)

    participant_1 = models.ForeignKey('accounts.Account',
                                      null=False,
                                      related_name='+',
                                      on_delete=models.CASCADE)
    participant_2 = models.ForeignKey('accounts.Account',
                                      null=False,
                                      related_name='+',
                                      on_delete=models.CASCADE)

    result = RelationIntegerField(relation=BATTLE_1X1_RESULT,
                                  relation_column='value',
                                  db_index=True)