示例#1
0
def spend(game,params,user_id,user_name):
    """ Let a user spend one of their dice """
    dice = game.get_user_dice(user_id)
    try:
        die = Die(params=params)
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1)')
    
    for i,d in enumerate(dice):
        if die.to_json() == d.to_json():
            del dice[i]
            game.set_user_dice(user_id,dice)
            return SlackResponse("%s spent %s" % (user_name, die.to_emoji()),True)
       
    return SlackResponse("You don't have a %s" % die.to_emoji())
示例#2
0
def spend(game, params, user_id, user_name):
    """ Let a user spend one of their dice """
    dice = game.get_user_dice(user_id)
    try:
        die = Die(params=params)
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1)')

    for i, d in enumerate(dice):
        if die.to_json() == d.to_json():
            del dice[i]
            game.set_user_dice(user_id, dice)
            return SlackResponse("%s spent %s" % (user_name, die.to_emoji()),
                                 True)

    return SlackResponse("You don't have a %s" % die.to_emoji())
示例#3
0
def give(game, params, user_id, user_name):
    """ Give one of your dice to someone else """
    if len(params) < 2:
        return SlackResponse("Usage: /fiasco die slack_name")
    from_player = game.get_user(user_id)
    if not from_player:
        return SlackResponse(
            "You are not registered as a player. Please type /fiasco register your_game_name"
        )

    # Load up our user and desired die
    slack_name = params[-1].replace('@', '')  # Allow use of @
    if slack_name == 'pool':
        to_player_id = 'pool'
    else:
        to_player_id = game.get_user_id_for_slack_name(slack_name)
    if not to_player_id:
        return SlackResponse('No player found with slack name "%s"' %
                             slack_name)
    try:
        die = Die(params=params[0:-1])
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1)')
    if not game.take_die_from(die, user_id):
        return SlackResponse(u'%s does not have a %s' % (user_name, die))
    if slack_name == 'pool':
        dice = game.dice
        dice.append(die)
        game.dice = dice
    else:
        game.give_die_to(die, to_player_id)
    return SlackResponse(
        u"%s gave %s to %s" % (user_name, die.to_emoji(), slack_name), True)
示例#4
0
def give(game,params,user_id,user_name):
    """ Give one of your dice to someone else """
    if len(params) < 2:
        return SlackResponse("Usage: /fiasco die slack_name")
    from_player = game.get_user(user_id)
    if not from_player:
        return SlackResponse("You are not registered as a player. Please type /fiasco register your_game_name")

    # Load up our user and desired die
    slack_name = params[-1].replace('@','') # Allow use of @
    if slack_name == 'pool':
        to_player_id = 'pool'
    else:
        to_player_id = game.get_user_id_for_slack_name(slack_name)
    if not to_player_id:
        return SlackResponse('No player found with slack name "%s"' % slack_name)
    try:
        die = Die(params=params[0:-1])
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1)')
    if not game.take_die_from(die,user_id):
        return SlackResponse(u'%s does not have a %s' % (user_name, die))
    if slack_name == 'pool':
        dice = game.dice
        dice.append(die)
        game.dice = dice
    else:
        game.give_die_to(die,to_player_id)
    return SlackResponse(u"%s gave %s to %s" % (user_name,die.to_emoji(),slack_name),True)
示例#5
0
def take(game,params,user_id,user_name):
    """ Take a specific die from the pool """
    if len(params) < 1:
        return SlackResponse("Usage: /fiasco take color number")
    
    # Validate
    try:
        die = Die(params=params)
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1')
    
    # Find die
    user_dice = game.get_user_dice(user_id) or []
    if game.take_die_from_pool(die):
        user_dice.append(die)
        game.set_user_dice(user_id,user_dice)
        return SlackResponse ("%s claimed %s.\nPool: %s" % (user_name, die.to_emoji(),game.format_dice_pool(game.dice) or 'Empty'),True)

    return SlackResponse(u"Could not find a %s" % die)
示例#6
0
def take(game, params, user_id, user_name):
    """ Take a specific die from the pool """
    if len(params) < 1:
        return SlackResponse("Usage: /fiasco take color number")

    # Validate
    try:
        die = Die(params=params)
    except InvalidDie:
        return SlackResponse('Format is w5 or white 5 (or b1 or black 1')

    # Find die
    user_dice = game.get_user_dice(user_id) or []
    if game.take_die_from_pool(die):
        user_dice.append(die)
        game.set_user_dice(user_id, user_dice)
        return SlackResponse(
            "%s claimed %s.\nPool: %s" %
            (user_name, die.to_emoji(), game.format_dice_pool(game.dice)
             or 'Empty'), True)

    return SlackResponse(u"Could not find a %s" % die)