Example #1
0
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))
Example #2
0
def handleBuyFurnitureAS2(client, _id):
    handleBuyFurniture(client, _id)