Add support for innocent items

This commit is contained in:
rsakeys
2020-03-03 17:38:32 +00:00
parent 3deba275fe
commit de605410ce
4 changed files with 14 additions and 1 deletions

View File

@@ -22,6 +22,7 @@ class Furniture(db.Model):
patched = 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"))
class Igloo(db.Model):

View File

@@ -15,6 +15,7 @@ class Item(db.Model):
tour = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
release_date = db.Column(db.Date, nullable=False, server_default=db.text("now()"))
treasure = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
innocent = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
def is_color(self):
return self.type == 1

View File

@@ -64,8 +64,15 @@ async def handle_code(p, redemption_code: str):
num_redeemed_codes = await PenguinRedemptionCode.join(RedemptionCode).count().where(
(PenguinRedemptionCode.penguin_id == p.id) & (RedemptionCode.type == 'CATALOG')
).gino.scalar()
owned_ids = ','.join((str(item.item_id) for item in code.items if item.item_id in p.inventory and p.server.items[item.item_id].treasure))
owned_ids = ','.join((str(item.id) for item in p.server.items.values() if item.treasure and item.id in p.inventory))
p.tb_validation = True
return await p.send_xt('rsc', 'treasurebook', 3, owned_ids, num_redeemed_codes)
if code.type == 'INNOCENT':
innocent_items = [item.id for item in p.server.items.values() if item.id in p.inventory and item.innocent]
innocent_furniture = [item.id for item in p.server.furniture.values() if item.id in p.furniture and item.innocent]
innocent_items = innocent_items + innocent_furniture
await p.send_xt('rsc', code.type, '', code.coins)