Esempio n. 1
0
def handleSendPuffleBackToTheWoods(client, data):
    puffle = int(data[2][0])

    puffleById = {i.id: i for i in client['data'].puffles}
    puffle = puffleById[puffle] if puffle in puffleById else None

    if puffle is None:
        returnValue(0)

    pMonths = int((time() - puffle.adopt())/60/60/24/30.5)
    dcoins = 500 + 10 * pMonths
    if int(client['coins']) < dcoins:
        dcoins = int(client['coins'])

    yield Coin(penguin_id=client['id'], transaction=-dcoins,
               comment="Penalized for abandoning adopted puffle. Puffle: {}, ID: {}".format(puffle.type, puffle.id))

    client['coins'] -= dcoins

    handlePuffleWalk(client, int(puffle.id), False)
    post_id = 100 + int(puffle.type)
    if puffle.type == 7:
        post_id = 169
    elif puffle.type == 8:
        post_id += 1

    yield Mail(penguin_id=client['id'], from_user=0, type=post_id, description=str(puffle.name)).save()
    yield puffle.delete()

    client['RefreshHandler'].forceRefresh()
Esempio n. 2
0
def handleAdopt(client, _type, name, sub_type, sendPuffleAdopt=True):
    if not handleCheckPuffleName(client, [0, 0, [name]]):
        returnValue(None)

    if not client['id'] in PENDING:
        PENDING[client['id']] = []

    PENDING[client['id']].append(name)

    puffle = client.engine.puffleCrumbs[sub_type]
    if puffle is None or (_type == 10 and not client['canAdoptRainbow']) or (
            _type == 11 and not client['canAdoptGold']):
        PENDING[client['id']].remove(name)
        returnValue(None)

    cost = 800
    if sub_type in client.engine.puffleCrumbs.defautPuffles:
        cost = 400

    if puffle.member and not client['member']:
        PENDING[client['id']].remove(name)
        client.send('e', 999)
        returnValue(None)

    if client['coins'] < cost:
        returnValue(client.send('e', 401))

    now = int(time())
    care = '{"food" : {now},"play" : {now},"bath" : {now}}'.replace(
        '{now}', str(now))
    puffle_db = yield Puffle(penguin_id=client['id'],
                             name=name,
                             type=_type,
                             subtype=sub_type,
                             food=puffle.hunger,
                             play=100,
                             rest=puffle.rest,
                             clean=puffle.health,
                             lastcare=care).save()

    yield Coin(
        penguin_id=client['id'],
        transaction=-cost,
        comment="Pet Puffle Adoption. Puffle: {}".format(sub_type)).save()
    client['coins'] -= cost
    yield Mail(penguin_id=client['id'],
               from_user=0,
               type=111,
               description=name).save()

    client['RefreshHandler'].forceRefresh()

    PENDING[client['id']].remove(name)
    returnValue(puffle_db)
Esempio n. 3
0
    def sendMail(self, to, mail):
        postcard = self.penguin.engine.postcardHandler[mail]
        if postcard is None:
            self.penguin.send('ms', self.penguin['coins'], 0)
            returnValue(None)

        if not (int(self.penguin['coins']) > 10):
            self.penguin.send('ms', self.penguin['coins'], 2)
            returnValue(None)

        yield Mail(penguin_id=to, from_user=self.penguin['id'], type=mail, description=str(postcard)).save()
        yield Coin(penguin_id=self.penguin['id'], transaction=-10,
                   comment="Postal Stamp charges. Mail sent: {}, to {}".format(mail, to)).save()

        self.penguin['coins'] -= 10
        self.penguin.send('ms', self.penguin['coins'], 1)