Ejemplo n.º 1
0
def coin_amount(amount, coin=None):
    if coin is None:
        coin = Coin.get('points')
    else:
        coin = Coin.get(coin)

    if coin is None:
        return '%f (not setup)' % amount

    return '<div class="coin-amount coin-%s" title="%s">%s</div>' % (coin.name, coin.name, amount)
Ejemplo n.º 2
0
def coin_amount(amount, coin=None):
    if coin is None:
        coin = Coin.get('points')
    else:
        coin = Coin.get(coin)

    if coin is None:
        return '%f (not setup)' % amount

    return '<div class="coin-amount coin-%s" title="%s">%s</div>' % (
        coin.name, coin.name, amount)
Ejemplo n.º 3
0
Archivo: user.py Proyecto: anaion/wouso
def coin_amount(amount, coin=None):
    if coin is None:
        coin = Coin.get('points')
    else:
        coin = Coin.get(coin)

    if coin is None:
        return '(not setup)'

    if isinstance(amount, Player):
        amount = amount.coins.get(coin.name, 0)

    return '<div class="coin-amount coin-%s" title="%s">%s</div>' % (coin.name, coin.name, amount)
Ejemplo n.º 4
0
Archivo: user.py Proyecto: anaion/wouso
def coin_amount(amount, coin=None):
    if coin is None:
        coin = Coin.get('points')
    else:
        coin = Coin.get(coin)

    if coin is None:
        return '(not setup)'

    if isinstance(amount, Player):
        amount = amount.coins.get(coin.name, 0)

    return '<div class="coin-amount coin-%s" title="%s">%s</div>' % (
        coin.name, coin.name, amount)
Ejemplo n.º 5
0
Archivo: sm.py Proyecto: ciprianf/wouso
def score_simple(player, coin, amount, game=None, formula=None,
    external_id=None, percents=100):
    """ Give amount of coin to the player.
    """
    if not isinstance(game, Game) and game is not None:
        game = game.get_instance()

    if not isinstance(player, Player):
        raise InvalidScoreCall()

    user = player.user

    coin = Coin.get(coin)
    formula = Formula.get(formula)

    computed_amount = 1.0 * amount * percents / 100
    hs = History.objects.create(user=user, coin=coin, amount=computed_amount,
        game=game, formula=formula, external_id=external_id, percents=percents)

    # update user.points asap
    if coin.id == 'points':
        player.points += computed_amount
        player.save()
        update_points(player, game)

    logging.debug("Scored %s with %f %s" % (user, computed_amount, coin))
    return hs
Ejemplo n.º 6
0
def score_simple(player, coin, amount, game=None, formula=None,
    external_id=None, percents=100 ):
    """ Give amount of coin to the player.
    """
    if not isinstance(game, Game) and game is not None:
        game = game.get_instance()

    if not isinstance(player, Player):
        raise InvalidScoreCall()

    user = player.user
    player = user.get_profile()
    user = player.user

    coin = Coin.get(coin)
    formula = Formula.get(formula)

    computed_amount = 1.0 * amount * percents / 100
    hs = History.add(user=user, coin=coin, amount=computed_amount,
            game=game, formula=formula, external_id=external_id, percents=percents)

    # update user.points asap
    if coin.name == 'points':
        if player.magic.has_modifier('top-disguise'):
            computed_amount = 1.0 * computed_amount * player.magic.modifier_percents('top-disguise') / 100

        player.points += computed_amount
        player.save()
        update_points(player, game)

    logging.debug("Scored %s with %f %s" % (user, computed_amount, coin))
    return hs
Ejemplo n.º 7
0
Archivo: sec.py Proyecto: rosedu/wouso
 def penalise(cls, player, formula, external_id=None):
     coins = Coin.get('penalty')
     if not coins is None:
         score(user=player,
               game=None,
               formula=formula,
               external_id=external_id)
Ejemplo n.º 8
0
def score_simple(player, coin, amount, game=None, formula=None,
    external_id=None, percents=100):
    """ Give amount of coin to the player.
    """
    if not isinstance(game, Game) and game is not None:
        game = game.get_instance()

    if not isinstance(player, Player):
        raise InvalidScoreCall()

    user = player.user
    player = user.get_profile()
    user = player.user

    coin = Coin.get(coin)
    formula = Formula.get(formula)

    computed_amount = 1.0 * amount * percents / 100
    hs = History.add(user=user, coin=coin, amount=computed_amount,
            game=game, formula=formula, external_id=external_id, percents=percents)

    # update user.points asap
    if coin.name == 'points':
        if player.magic.has_modifier('top-disguise'):
            computed_amount = 1.0 * computed_amount * player.magic.modifier_percents('top-disguise') / 100

        player.points += computed_amount
        player.save()
        update_points(player, game)

    logging.debug("Scored %s with %f %s" % (user, computed_amount, coin))
    return hs
Ejemplo n.º 9
0
Archivo: sm.py Proyecto: LucianU/wouso
def setup():
    """ Prepare database for Scoring """
    for cc in CORE_POINTS:
        if not Coin.get(cc):
            Coin.add(cc, name=cc)
    # special case, gold is integer
    gold = Coin.get('gold')
    gold.integer = True
    gold.save()

    # iterate through games and register formulas
    for game in get_games():
        for formula in game.get_formulas():
            if not Formula.get(formula.id):
                Formula.add(formula)
    # add wouso formulas
    for formula in God.get_system_formulas():
        if not Formula.get(formula.id):
            Formula.add(formula)
Ejemplo n.º 10
0
def setup():
    """ Prepare database for Scoring """
    for cc in CORE_POINTS:
        if not Coin.get(cc):
            Coin.add(cc, name=cc)
    # special case, gold is integer
    gold = Coin.get('gold')
    gold.integer = True
    gold.save()

    # iterate through games and register formulas
    for game in get_games():
        for formula in game.get_formulas():
            if not Formula.get(formula.id):
                Formula.add(formula)
    # add wouso formulas
    for formula in God.get_system_formulas():
        if not Formula.get(formula.id):
            Formula.add(formula)
Ejemplo n.º 11
0
def sync_user(player):
    """ Synchronise user points with database
    """
    coin = Coin.get('points')
    points = real_points(player) 
    if player.points != points and not player.magic.has_modifier('top-disguise'):
        logging.debug('%s had %d instead of %d points' % (player, player.points, points))
        player.points = points
        player.level_no = God.get_level_for_points(player.points)
        player.save()
Ejemplo n.º 12
0
Archivo: sm.py Proyecto: andreip/wouso
def sync_user(player):
    """ Synchronise user points with database
    """
    coin = Coin.get("points")
    result = History.objects.filter(user=player.user, coin=coin).aggregate(total=models.Sum("amount"))
    points = result["total"] if result["total"] is not None else 0
    if player.points != points and not player.magic.has_modifier("top-disguise"):
        logging.debug("%s had %d instead of %d points" % (player, player.points, points))
        player.points = points
        player.level_no = God.get_level_for_points(player.points)
        player.save()
Ejemplo n.º 13
0
Archivo: sm.py Proyecto: LucianU/wouso
def sync_user(player):
    """ Synchronise user points with database
    """
    coin = Coin.get('points')
    result = History.objects.filter(user=player.user,coin=coin).aggregate(total=models.Sum('amount'))
    points = result['total'] if result['total'] is not None else 0
    if player.points != points:
        logging.debug('%s had %d instead of %d points' % (player, player.points, points))
        player.points = points
        player.level_no = God.get_level_for_points(player.points)
        player.save()
Ejemplo n.º 14
0
def sync_user(player):
    """ Synchronise user points with database
    """
    coin = Coin.get('points')
    result = History.objects.filter(
        user=player.user, coin=coin).aggregate(total=models.Sum('amount'))
    points = result['total'] if result['total'] is not None else 0
    if player.points != points:
        logging.debug('%s had %d instead of %d points' %
                      (player, player.points, points))
        player.points = points
        player.level_no = God.get_level_for_points(player.points)
        player.save()
Ejemplo n.º 15
0
def history_for(user, game, external_id=None, formula=None, coin=None):
    """ Return all history entries for given (user, game) pair.
    """
    # TODO: check usage
    fltr = {}
    if external_id:
        fltr['external_id'] = external_id
    if formula:
        fltr['formula'] = Formula.get(formula)
    if coin:
        fltr['coin'] = Coin.get(coin)

    if not isinstance(game, Game):
        game = game.get_instance()

    if not isinstance(user, User):
        user = user.user

    try:
        return History.objects.filter(user=user, game=game, **fltr)
    except History.DoesNotExist:
        return None
Ejemplo n.º 16
0
Archivo: sm.py Proyecto: andreip/wouso
def history_for(user, game, external_id=None, formula=None, coin=None):
    """ Return all history entries for given (user, game) pair.
    """
    # TODO: check usage
    fltr = {}
    if external_id:
        fltr["external_id"] = external_id
    if formula:
        fltr["formula"] = Formula.get(formula)
    if coin:
        fltr["coin"] = Coin.get(coin)

    if not isinstance(game, Game):
        game = game.get_instance()

    if not isinstance(user, User):
        user = user.user

    try:
        return History.objects.filter(user=user, game=game, **fltr)
    except History.DoesNotExist:
        return None
Ejemplo n.º 17
0
def real_points(player):
    coin = Coin.get('points')
    result = History.objects.filter(user=player.user,coin=coin).aggregate(total=models.Sum('amount'))
    return result['total'] if result['total'] is not None else 0
Ejemplo n.º 18
0
def check_setup():
    """ Check if the module has been setup """

    if Coin.get('points') is None:
        return False
    return True
Ejemplo n.º 19
0
Archivo: sm.py Proyecto: andreip/wouso
def check_setup():
    """ Check if the module has been setup """

    if Coin.get("points") is None:
        return False
    return True
Ejemplo n.º 20
0
Archivo: sm.py Proyecto: andreip/wouso
def real_points(player):
    coin = Coin.get("points")
    result = History.objects.filter(user=player.user, coin=coin).aggregate(total=models.Sum("amount"))
    return result["total"] if result["total"] is not None else 0
Ejemplo n.º 21
0
 def test_setup(self):
     for c in CORE_POINTS:
         self.assertFalse(Coin.get(c))
     setup_scoring()
     for c in CORE_POINTS:
         self.assertTrue(Coin.get(c))
Ejemplo n.º 22
0
Archivo: sec.py Proyecto: anaion/wouso
 def penalise(cls, player, formula):
     coins = Coin.get('penalty')
     from wouso.core.scoring import score
     if not coins is None:
         score(user=player, game=None, formula=formula)
Ejemplo n.º 23
0
def real_points(player):
    coin = Coin.get('points')
    result = History.objects.filter(
        user=player.user, coin=coin).aggregate(total=models.Sum('amount'))
    return result['total'] if result['total'] is not None else 0
Ejemplo n.º 24
0
 def test_setup(self):
     for c in CORE_POINTS:
         self.assertFalse(Coin.get(c))
     setup_scoring()
     for c in CORE_POINTS:
         self.assertTrue(Coin.get(c))
Ejemplo n.º 25
0
 def penalise(cls, player, formula, external_id=None):
     coins = Coin.get('penalty')
     if not coins is None:
         score(user=player, game=None, formula=formula, external_id=external_id)
Ejemplo n.º 26
0
Archivo: sec.py Proyecto: anaion/wouso
 def penalise(cls, player, formula):
     coins = Coin.get('penalty')
     from wouso.core.scoring import score
     if not coins is None:
         score(user=player, game=None, formula=formula)