min/modules/bake.py

138 lines
4.2 KiB
Python
Raw Normal View History

2020-04-06 20:32:51 +00:00
2020-04-06 22:18:22 +00:00
import dataset
2020-04-07 00:17:59 +00:00
import random
2020-04-06 22:18:22 +00:00
2020-04-07 17:55:35 +00:00
async def purge(self, c, n, m):
if not await self.is_admin(n):
await self.message(c,'{} was a bad bad bad. {} got sucked into the oven'.format(n,n))
if len(m) < 1:
await message(c, 'i refuse.')
return
inv = self.db['inv']
inv.delete(name=m)
await self.message(c,'ok lel')
2020-04-06 22:18:22 +00:00
async def cheat(self, c, n, m):
if not await self.is_admin(n):
await self.message(c,'{} was a bad bad bad. {} got sucked into the oven'.format(n,n))
m = m.split(' ')
2020-04-07 00:17:59 +00:00
if len(m) < 2:
2020-04-06 22:18:22 +00:00
await message(c, 'i refuse.')
return
inv = self.db['inv']
inv.insert(dict(name=m[0], item=m[1]))
await self.message(c,'ok il allow this once')
2020-04-07 17:55:35 +00:00
async def give(self, c, n, m):
m = m.split(' ')
if len(m) < 2:
await self.message(c, 'dummy thicc you cant give air!')
inv = self.db['inv']
its = inv.find_one(name=n, item=m[1])
if its == None:
await self.message(c, 'dummy thicc you cant trick me!')
inv.delete(id=its['id'])
inv.insert(dict(name=m[0], item=its['item']))
await self.message(c, 'you gave {} a {}!'.format(m[0], m[1]))
2020-04-06 22:18:22 +00:00
async def bake(self, c, n, m):
if len(m) < 1:
await self.message(c, 'Dummy thicc you cant bake air!')
return
inv = self.db['inv']
2020-04-07 00:17:59 +00:00
its = (inv.find_one(name=n, item=m))
if its == None:
2020-04-18 00:44:02 +00:00
await self.message(c, 'You dont have any {}'.format(m[:10]))
2020-04-06 22:18:22 +00:00
return
2020-04-07 00:17:59 +00:00
# if item has value, use that, else use a okay value
if m in list(self.bakedGoods.keys()):
value = self.bakedGoods[m]
else:
value = 15
# consume the item
inv.delete(id=its['id'])
# oooo randomize what will pop out
2020-04-07 00:29:04 +00:00
value += random.uniform(-20, 20)
2020-04-07 00:17:59 +00:00
# choose the output
while value not in list(self.bakedPrice.keys()):
value = int(value - 1)
if value < 0:
2020-04-07 00:29:04 +00:00
await self.message(c, 'you notice some smoke, shouldint have put that {} in the oven!'.format(m))
return
2020-04-06 22:18:22 +00:00
2020-04-07 00:17:59 +00:00
newitem = self.bakedPrice[value]
inv.insert(dict(name=n, item=newitem))
await self.message(c, 'You bake your {}, and out pops a {}!'.format(m, newitem))
async def invsee(self, c, n, m):
if len(m) < 1:
2020-04-07 19:33:32 +00:00
m = n.strip()
2020-04-07 00:17:59 +00:00
inv = self.db['inv']
it = [ i['item'] for i in inv.find(name=m) ]
if len(it) < 1:
await self.message(c, 'you look through your kitchen and see nothing')
else:
await self.message(c, 'you look through your kitchen and see {}, with a combined value of ${}'.format(' '.join(it), sum([self.bakedGoods[i] for i in it if i in self.bakedGoods])/10))
2020-04-18 00:44:02 +00:00
self.timeout += len(' '.join(it))/300
2020-04-06 20:32:51 +00:00
2020-04-07 01:15:28 +00:00
async def generate(self, c, n, m):
2020-04-07 15:22:15 +00:00
if int(random.uniform(0,30)) == 1:
2020-04-07 01:15:28 +00:00
inv = self.db['inv']
inv.insert(dict(name=n, item=random.choice(list(self.bakedGoods.keys()))))
qed = self.db['qed']
if qed.find_one(name=n) == None:
qed.insert(dict(name=n))
await self.message(n, 'Ding! you left some stuff in the oven! (you were lucky and found an item!!!) check out what you have with "ov items" and you can do cool stuff like bake them! (i will not query you again, so periodically check for new items!)')
2020-04-06 20:32:51 +00:00
async def init(self):
2020-04-06 22:18:22 +00:00
self.db = dataset.connect('sqlite:///database.db')
self.cmd['bake'] = bake
self.cmd['cheat'] = cheat
2020-04-07 00:17:59 +00:00
self.cmd['inv'] = invsee
self.cmd['items'] = invsee
self.cmd['goods'] = invsee
2020-04-07 17:55:35 +00:00
self.cmd['purge'] = purge
self.cmd['give'] = give
2020-04-07 00:17:59 +00:00
2020-04-07 01:32:57 +00:00
self.help['bake'] = ['bake <item> - bake some stuff', 'dont dirty the oven!']
self.help['cheat'] = ['cheat <user> <item> - you are bad if you use it', 'bad bad bad bad']
2020-04-07 17:55:35 +00:00
self.help['items'] = ['items [user] - show the stuff in your inventory (more for aliases)', 'aliases for items include: inv, goods']
self.help['purge'] = ['purge <user> - clear their inv lel', 'nooo admin abuse im calling the cops']
self.help['give'] = ['give <user> <item> - give someone something from your inventory', 'thats very nice of you!']
2020-04-07 01:32:57 +00:00
2020-04-07 01:15:28 +00:00
self.raw['genGoods'] = generate
2020-04-07 00:17:59 +00:00
self.bakedGoods = {
'cheese': 50,
'wheat': 1,
'turd': 0,
'flour': 10,
'bread': 30,
'crispy': 15,
'tortilla': 35,
'egg': 20,
'bird': 32,
'erotic': 69,
'phallic': 65,
'pizza': 34,
'hairball': 6,
2020-04-07 19:33:32 +00:00
'cookie': 44,
'pancake': 12,
'rice': 29,
'mess': 14,
'sandwich':55,
'wafer': 56,
'pi': 31,
'fbi': 80
2020-04-07 00:17:59 +00:00
}
self.bakedPrice = dict((v,k) for k,v in self.bakedGoods.items())
2020-04-06 20:32:51 +00:00