def handlePuffleDig(client, data): if client['puffleHandler'].walkingPuffle is None: return cmd = data[1] lDC = 'lastDig' if 'oncommand' in cmd: lDC += 'OC' lastDig = client[lDC] cmd = max(0, (40 if 'oncommand' not in cmd else 120) - int(time() - client[lDC])) if cmd: returnValue(0) # no dig digables = range(5) setattr(client.penguin, lDC, time()) digChances = list() canDigGold = client['puffleHandler'].walkingPuffle.state == 1 for i in digables: if i is 4 and not canDigGold: continue elif i is 1 and canDigGold: continue chance = randint(0, 3 + 4 * int(canDigGold and i is 'gold')) digChances += [i for _ in range(chance)] dig = choice(digChances) if dig == 0: coinsDug = int(10 * randint(1, 40)) client['coins'] += coinsDug returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 0, 0, coinsDug, 0, 0)) elif dig == 1: returnValue(client['room'].send('nodig', client['id'], 1)) elif dig == 2: diggables = DIGGABLE_FURN if client['puffleHandler'].walkingPuffle.id == 11: diggables += GOLD_DIGGABLE_FURN shuffle(diggables) for dug in diggables: tryDigging = yield handleBuyFurniture(client, dug, False) if tryDigging is True: returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 2, dug, 1, 0, 0)) client['coins'] += 600 returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 0, 0, 600, 0, 0)) elif dig == 3: diggables = DIGGABLES if client['puffleHandler'].walkingPuffle.id == 11: diggables += GOLD_DIGGABLES shuffle(diggables) for dug in diggables: if dug not in client['inventory']: client['inventory'].append(dug) returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 3, dug, 1, 0, 0)) client['coins'] += 500 returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 0, 0, 500, 0, 0)) elif dig == 4: dug = randint(1, 3) client['currencyHandler'].currencies[1] += dug client['currencyHandler'].refreshCurrencies() handleGetCurrencies(client, [-1, '', []]) if client['currencyHandler'].currencies[1] > 14: client.penguin.canAdoptGold = True returnValue(client['room'].send( 'puffledig', client['id'], client['puffleHandler'].walkingPuffle.id, 4, 0, dug, 0, 0))
def handleBuyFurnitureAS2(client, _id): handleBuyFurniture(client, _id)