Add support for innocent items

This commit is contained in:
rsakeys 2020-03-03 21:02:57 +00:00
parent de605410ce
commit 2aadfba9e8

View File

@ -7,6 +7,7 @@ from houdini.data.redemption import RedemptionCode, RedemptionAwardCard, Redempt
RedemptionAwardFurniture, RedemptionAwardIgloo, RedemptionAwardItem, RedemptionAwardLocation,\ RedemptionAwardFurniture, RedemptionAwardIgloo, RedemptionAwardItem, RedemptionAwardLocation,\
RedemptionAwardPuffle, RedemptionAwardPuffleItem, PenguinRedemptionBook, PenguinRedemptionCode RedemptionAwardPuffle, RedemptionAwardPuffleItem, PenguinRedemptionBook, PenguinRedemptionCode
import random
from datetime import datetime from datetime import datetime
@ -69,10 +70,42 @@ async def handle_code(p, redemption_code: str):
return await p.send_xt('rsc', 'treasurebook', 3, owned_ids, num_redeemed_codes) return await p.send_xt('rsc', 'treasurebook', 3, owned_ids, num_redeemed_codes)
if code.type == 'INNOCENT': if code.type == 'INNOCENT':
innocent_items = [item.id for item in p.server.items.values() if item.id in p.inventory and item.innocent] all_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] all_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 innocent_redeemed = all_innocent_items + all_innocent_furniture
await p.send_xt('rsc', code.type, '', code.coins) innocent_furniture = ['f' + str(item.id) for item in p.server.furniture.values() if item.innocent]
innocent_clothing = [str(item.id) for item in p.server.items.values() if item.innocent]
innocent_items = innocent_clothing + innocent_furniture
awards = []
while len(awards) < 3:
if len(innocent_redeemed) >= len(innocent_items):
choice = random.choice(innocent_furniture)
if choice not in awards:
p.add_furniture(int(choice[1:]), 1, False)
awards.append(choice)
else:
choice = random.choice(innocent_items)
if choice in innocent_clothing:
if int(choice) not in innocent_redeemed and choice not in awards:
p.add_inventory(int(choice), False)
awards.append(choice)
elif choice in innocent_furniture:
if int(choice[1:]) not in innocent_redeemed and choice not in awards:
p.add_furniture(int(choice[1:]), 1, False)
awards.append(choice)
redeemed = len(innocent_redeemed) + 3
if redeemed == len(innocent_items):
redeemed += 1
p.add_igloo(53, False)
awards.append("g53")
if code.uses != -1:
await PenguinRedemptionCode.create(penguin_id=p.id, code_id=code.id)
await p.send_xt('rsc', 'INNOCENT', ','.join(map(str, awards)), redeemed, len(innocent_items))