Ejemplo n.º 1
0
class PenguinTrack(db.Model):
    __tablename__ = 'penguin_track'

    id = db.Column(db.Integer,
                   primary_key=True,
                   server_default=db.text(
                       "nextval('\"penguin_track_id_seq\"'::regclass)"))
    name = db.Column(db.String(12),
                     nullable=False,
                     server_default=db.text("''::character varying"))
    owner_id = db.Column(db.ForeignKey('penguin.id',
                                       ondelete='CASCADE',
                                       onupdate='CASCADE'),
                         nullable=False)
    sharing = db.Column(db.Boolean,
                        nullable=False,
                        server_default=db.text("false"))
    pattern = db.Column(db.Text, nullable=False)

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self._likes = 0

    @property
    def likes(self):
        return self._likes

    @likes.setter
    def likes(self, like_count):
        self._likes = like_count
Ejemplo n.º 2
0
class RedemptionBookWord(db.Model):
    __tablename__ = 'redemption_book_word'

    question_id = db.Column(
        db.Integer,
        primary_key=True,
        server_default=db.text(
            "nextval('\"redemption_book_word_question_id_seq\"'::regclass)"))
    book_id = db.Column(db.ForeignKey('redemption_book.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    page = db.Column(db.SmallInteger,
                     primary_key=True,
                     nullable=False,
                     server_default=db.text("1"))
    line = db.Column(db.SmallInteger,
                     primary_key=True,
                     nullable=False,
                     server_default=db.text("1"))
    word_number = db.Column(db.SmallInteger,
                            primary_key=True,
                            nullable=False,
                            server_default=db.text("1"))
    answer = db.Column(db.String(20), nullable=False)
Ejemplo n.º 3
0
class PenguinPostcard(db.Model):
    __tablename__ = 'penguin_postcard'

    id = db.Column(db.Integer,
                   primary_key=True,
                   server_default=db.text(
                       "nextval('\"penguin_postcard_id_seq\"'::regclass)"))
    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           nullable=False,
                           index=True)
    sender_id = db.Column(db.ForeignKey('penguin.id',
                                        ondelete='CASCADE',
                                        onupdate='CASCADE'),
                          index=True)
    postcard_id = db.Column(db.ForeignKey('postcard.id',
                                          ondelete='CASCADE',
                                          onupdate='CASCADE'),
                            nullable=False)
    send_date = db.Column(db.DateTime,
                          nullable=False,
                          server_default=db.text("now()"))
    details = db.Column(db.String(255),
                        nullable=False,
                        server_default=db.text("''::character varying"))
    has_read = db.Column(db.Boolean,
                         nullable=False,
                         server_default=db.text("false"))
Ejemplo n.º 4
0
class IglooLike(db.Model):
    __tablename__ = 'igloo_like'

    igloo_id = db.Column(db.ForeignKey('penguin_igloo_room.id', ondelete='CASCADE', onupdate='CASCADE'),
                         primary_key=True, nullable=False)
    player_id = db.Column(db.ForeignKey('penguin.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
                          nullable=False)
    count = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
    date = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
Ejemplo n.º 5
0
class Postcard(db.Model):
    __tablename__ = 'postcard'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    cost = db.Column(db.Integer, nullable=False, server_default=db.text("10"))
    enabled = db.Column(db.Boolean,
                        nullable=False,
                        server_default=db.text("false"))
Ejemplo n.º 6
0
class Location(db.Model):
    __tablename__ = 'location'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    cost = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
    patched = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    legacy_inventory = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    vanilla_inventory = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
Ejemplo n.º 7
0
class IglooFurniture(db.Model):
    __tablename__ = 'igloo_furniture'

    igloo_id = db.Column(db.ForeignKey('penguin_igloo_room.id', ondelete='CASCADE', onupdate='CASCADE'),
                         primary_key=True, nullable=False, index=True)
    furniture_id = db.Column(db.ForeignKey('furniture.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
                             nullable=False)
    x = db.Column(db.SmallInteger, primary_key=True, nullable=False, server_default=db.text("0"))
    y = db.Column(db.SmallInteger, primary_key=True, nullable=False, server_default=db.text("0"))
    frame = db.Column(db.SmallInteger, primary_key=True, nullable=False, server_default=db.text("0"))
    rotation = db.Column(db.SmallInteger, primary_key=True, nullable=False, server_default=db.text("0"))
Ejemplo n.º 8
0
class PenguinMembership(db.Model):
    __tablename__ = 'penguin_membership'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    start = db.Column(db.DateTime, primary_key=True, nullable=False)
    expires = db.Column(db.DateTime)
    start_aware = db.Column(db.Boolean, server_default=db.text("false"))
    expires_aware = db.Column(db.Boolean, server_default=db.text("false"))
    expired_aware = db.Column(db.Boolean, server_default=db.text("false"))
Ejemplo n.º 9
0
class Furniture(db.Model):
    __tablename__ = 'furniture'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    type = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
    sort = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
    cost = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
    member = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    patched = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    legacy_inventory = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    vanilla_inventory = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    bait = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
    max_quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("100"))
    innocent = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
Ejemplo n.º 10
0
class Permission(db.Model):
    __tablename__ = 'permission'

    name = db.Column(db.String(50), nullable=False, primary_key=True)
    enabled = db.Column(db.Boolean,
                        nullable=False,
                        server_default=db.text("true"))
Ejemplo n.º 11
0
class QuestTask(db.Model):
    __tablename__ = 'quest_task'

    id = db.Column(db.Integer, primary_key=True, server_default=db.text("nextval('\"quest_id_seq\"'::regclass)"))
    quest_id = db.Column(db.ForeignKey('quest.id', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
    description = db.Column(db.String(50), nullable=False)
    room_id = db.Column(db.ForeignKey('room.id', ondelete='CASCADE', onupdate='CASCADE'))
    data = db.Column(db.String(50))
Ejemplo n.º 12
0
class PenguinQuestTask(db.Model):
    __tablename__ = 'penguin_quest_task'

    task_id = db.Column(db.ForeignKey('quest_task.id', ondelete='CASCADE', onupdate='CASCADE'), nullable=False,
                        primary_key=True)
    penguin_id = db.Column(db.ForeignKey('penguin.id', ondelete='CASCADE', onupdate='CASCADE'), nullable=False,
                           primary_key=True)
    complete = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
Ejemplo n.º 13
0
class QuestAwardFurniture(db.Model):
    __tablename__ = 'quest_award_furniture'

    quest_id = db.Column(db.ForeignKey('quest.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
                         nullable=False)
    furniture_id = db.Column(db.ForeignKey('furniture.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
                             nullable=False)
    quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
Ejemplo n.º 14
0
class QuestAwardPuffleItem(db.Model):
    __tablename__ = 'quest_award_puffle_item'

    quest_id = db.Column(db.ForeignKey('quest.id', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
                         nullable=False)
    puffle_item_id = db.Column(db.ForeignKey('puffle_item.id', ondelete='CASCADE', onupdate='CASCADE'),
                               primary_key=True, nullable=False)
    quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
Ejemplo n.º 15
0
class RoomWaddle(db.Model):
    __tablename__ = 'room_waddle'

    id = db.Column(db.Integer, primary_key=True, nullable=False)
    room_id = db.Column(db.ForeignKey('room.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    seats = db.Column(db.SmallInteger,
                      nullable=False,
                      server_default=db.text("2"))
    game = db.Column(db.String(20), nullable=False)

    def __init__(self, *args, **kwargs):
        self.temporary = kwargs.pop('temporary', False)
        self.penguins = []
        self.logic = None
        self.room = None

        super().__init__(*args, **kwargs)

    async def add_penguin(self, p):
        seat_id = self.penguins.index(None)
        self.penguins[seat_id] = p
        await p.send_xt('jw', seat_id)
        await p.room.send_xt('uw', self.id, seat_id, p.safe_name, p.id)

        p.waddle = self

        if self.penguins.count(None) == 0:
            game_instance = self.logic(self)

            await game_instance.start()

            await self.reset()

            if self.temporary:
                del self.room.waddles[self.id]

    async def remove_penguin(self, p):
        seat_id = self.get_seat_id(p)
        self.penguins[seat_id] = None
        await p.room.send_xt('uw', self.id, seat_id)

        p.waddle = None

        if self.temporary and self.penguins.count(None) == self.seats:
            del self.room.waddles[self.id]

    async def reset(self):
        for seat_id, penguin in enumerate(self.penguins):
            if penguin:
                self.penguins[seat_id] = None
                await penguin.room.send_xt('uw', self.id, seat_id)

    def get_seat_id(self, p):
        return self.penguins.index(p)
Ejemplo n.º 16
0
class Login(db.Model):
    __tablename__ = 'login'

    id = db.Column(
        db.Integer,
        primary_key=True,
        server_default=db.text("nextval('\"login_id_seq\"'::regclass)"))
    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           nullable=False)
    date = db.Column(db.DateTime,
                     nullable=False,
                     server_default=db.text("now()"))
    ip_hash = db.Column(db.CHAR(255), nullable=False)
    minutes_played = db.Column(db.Integer,
                               nullable=False,
                               server_default=db.text("0"))
Ejemplo n.º 17
0
class Stamp(db.Model):
    __tablename__ = 'stamp'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    group_id = db.Column(db.ForeignKey('stamp_group.id',
                                       ondelete='CASCADE',
                                       onupdate='CASCADE'),
                         nullable=False)
    member = db.Column(db.Boolean,
                       nullable=False,
                       server_default=db.text("false"))
    rank = db.Column(db.SmallInteger,
                     nullable=False,
                     server_default=db.text("1"))
    description = db.Column(db.String(255),
                            nullable=False,
                            server_default=db.text("''::character varying"))
Ejemplo n.º 18
0
class PenguinGameData(db.Model):
    __tablename__ = 'penguin_game_data'

    penguin_id = db.Column(db.ForeignKey('penguin.id', ondelete='RESTRICT', onupdate='CASCADE'), primary_key=True,
                           nullable=False)
    room_id = db.Column(db.ForeignKey('room.id', ondelete='RESTRICT', onupdate='CASCADE'), primary_key=True,
                        nullable=False, index=True)
    index = db.Column(db.Integer, primary_key=True, index=True)
    data = db.Column(db.Text, nullable=False, server_default=db.text("''"))
Ejemplo n.º 19
0
class EpfComMessage(db.Model):
    __tablename__ = 'epf_com_message'

    message = db.Column(db.Text, nullable=False)
    character_id = db.Column(db.ForeignKey('character.id',
                                           ondelete='RESTRICT',
                                           onupdate='CASCADE'),
                             nullable=False)
    date = db.Column(db.DateTime,
                     nullable=False,
                     server_default=db.text("now()"))
Ejemplo n.º 20
0
class PenguinCard(db.Model):
    __tablename__ = 'penguin_card'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False,
                           index=True)
    card_id = db.Column(db.ForeignKey('card.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    quantity = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("1"))
    member_quantity = db.Column(db.SmallInteger,
                                nullable=False,
                                server_default=db.text("0"))
Ejemplo n.º 21
0
class CfcDonation(db.Model):
    __tablename__ = 'cfc_donation'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           nullable=False)
    coins = db.Column(db.Integer, nullable=False)
    charity = db.Column(db.Integer, nullable=False)
    date = db.Column(db.DateTime,
                     nullable=False,
                     server_default=db.text("now()"))
Ejemplo n.º 22
0
class CoverItem(db.Model):
    __tablename__ = 'cover_item'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    item_id = db.Column(db.ForeignKey('item.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    x = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
    y = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
    rotation = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("0"))
    depth = db.Column(db.SmallInteger,
                      nullable=False,
                      server_default=db.text("0"))
Ejemplo n.º 23
0
class Card(db.Model):
    __tablename__ = 'card'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    set_id = db.Column(db.SmallInteger,
                       nullable=False,
                       server_default=db.text("1"))
    power_id = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("0"))
    element = db.Column(db.CHAR(1),
                        nullable=False,
                        server_default=db.text("'s'::bpchar"))
    color = db.Column(db.CHAR(1),
                      nullable=False,
                      server_default=db.text("'b'::bpchar"))
    value = db.Column(db.SmallInteger,
                      nullable=False,
                      server_default=db.text("2"))
    description = db.Column(db.String(255),
                            nullable=False,
                            server_default=db.text("''::character varying"))

    def get_string(self):
        return f'{self.id}|{self.element}|{self.value}|{self.color}|{self.power_id}'
Ejemplo n.º 24
0
class PuffleItem(db.Model):
    __tablename__ = 'puffle_item'

    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.ForeignKey('puffle_item.id',
                                        ondelete='CASCADE',
                                        onupdate='CASCADE'),
                          nullable=False)
    name = db.Column(db.String(50),
                     nullable=False,
                     server_default=db.text("''::character varying"))
    type = db.Column(db.String(10),
                     nullable=False,
                     server_default=db.text("'care'::character varying"))
    play_external = db.Column(
        db.String(10),
        nullable=False,
        server_default=db.text("'none'::character varying"))
    cost = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
    quantity = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("1"))
    member = db.Column(db.Boolean,
                       nullable=False,
                       server_default=db.text("false"))
    food_effect = db.Column(db.SmallInteger,
                            nullable=False,
                            server_default=db.text("0"))
    rest_effect = db.Column(db.SmallInteger,
                            nullable=False,
                            server_default=db.text("0"))
    play_effect = db.Column(db.SmallInteger,
                            nullable=False,
                            server_default=db.text("0"))
    clean_effect = db.Column(db.SmallInteger,
                             nullable=False,
                             server_default=db.text("0"))
Ejemplo n.º 25
0
class Puffle(db.Model):
    __tablename__ = 'puffle'

    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.ForeignKey('puffle.id',
                                        ondelete='CASCADE',
                                        onupdate='CASCADE'),
                          nullable=False)
    name = db.Column(db.String(50),
                     nullable=False,
                     server_default=db.text("''::character varying"))
    cost = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
    member = db.Column(db.Boolean,
                       nullable=False,
                       server_default=db.text("false"))
    favourite_food = db.Column(db.ForeignKey('puffle_item.id',
                                             ondelete='CASCADE',
                                             onupdate='CASCADE'),
                               nullable=False)
    favourite_toy = db.Column(
        db.ForeignKey('puffle_item.id', ondelete='CASCADE',
                      onupdate='CASCADE'))
    runaway_postcard = db.Column(
        db.ForeignKey('postcard.id', ondelete='CASCADE', onupdate='CASCADE'))
Ejemplo n.º 26
0
class CharacterBuddy(db.Model):
    __tablename__ = 'character_buddy'
    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    character_id = db.Column(db.ForeignKey('character.id',
                                           ondelete='CASCADE',
                                           onupdate='CASCADE'),
                             primary_key=True,
                             nullable=False)
    best_buddy = db.Column(db.Boolean,
                           nullable=False,
                           server_default=db.text("false"))
Ejemplo n.º 27
0
class PenguinPuffleItem(db.Model):
    __tablename__ = 'penguin_puffle_item'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    item_id = db.Column(db.ForeignKey('puffle_item.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    quantity = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("1"))
Ejemplo n.º 28
0
class PenguinStamp(db.Model):
    __tablename__ = 'penguin_stamp'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    stamp_id = db.Column(db.ForeignKey('stamp.id',
                                       ondelete='CASCADE',
                                       onupdate='CASCADE'),
                         primary_key=True,
                         nullable=False)
    recent = db.Column(db.Boolean,
                       nullable=False,
                       server_default=db.text("true"))
Ejemplo n.º 29
0
class BuddyList(db.Model):
    __tablename__ = 'buddy_list'

    penguin_id = db.Column(db.ForeignKey('penguin.id',
                                         ondelete='CASCADE',
                                         onupdate='CASCADE'),
                           primary_key=True,
                           nullable=False)
    buddy_id = db.Column(db.ForeignKey('penguin.id',
                                       ondelete='CASCADE',
                                       onupdate='CASCADE'),
                         primary_key=True,
                         nullable=False,
                         index=True)
    best_buddy = db.Column(db.Boolean,
                           nullable=False,
                           server_default=db.text("false"))
Ejemplo n.º 30
0
class CardStarterDeck(db.Model):
    __tablename__ = 'card_starter_deck'

    item_id = db.Column(db.ForeignKey('item.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False,
                        index=True)
    card_id = db.Column(db.ForeignKey('card.id',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        primary_key=True,
                        nullable=False)
    quantity = db.Column(db.SmallInteger,
                         nullable=False,
                         server_default=db.text("1"))