Exemple #1
0
def ajax_city_workers(request):
    """ Assign workers in a city """
    _stop_if_err_request(request, 'POST', True)
    try:
        cid = int(request.POST.get('cid', 'crash'))
    except ValueError:
        _miss('ajax_city_workers')
    city = CityZone.objects.get(id=cid)
    if not city.owner == _player(request):
        print 'ajax_city_workers - HAX_ATTEMPT: Does not own the city'
        return HttpResponse("HAX_ATTEMPT")
    goldw = _getintval(request.POST, 'gold', city.goldwork)
    bloodw = _getintval(request.POST, 'blood', city.bloodwork)
    gemw = _getintval(request.POST, 'gem', city.gemwork)
    woodw = _getintval(request.POST, 'wood', city.woodwork)
    orew = _getintval(request.POST, 'ore', city.orework)
    dif = (goldw - city.goldwork) + (bloodw - city.bloodwork)
    dif += (gemw - city.gemwork)
    dif += (woodw - city.woodwork) + (orew - city.orework)
    player = _player(request)
    tick.income(player) # Generate income before new worker assignments
    if player.get_free_workers() - dif >= 0: # Doesn't exceed maximum
        city.goldwork = goldw
        city.bloodwork = bloodw
        city.gemwork = gemw
        city.woodwork = woodw
        city.orework = orew
        city.save()
        return HttpResponse("OK")
    else:
        print "ajax_city_workers: Attempted to assign more workers than possible"
        return HttpResponse("Error, exceeded max workers")
Exemple #2
0
def ajax_status(request):
    """ Player status information, needs to be updated regulary """
    _stop_if_err_request(request, 'GET', True)
    player = _player(request)
    tick.income(player)
    data = {'pattacks': player.cur_inc_player_attacks().count(),
            'hattacks': player.cur_inc_hero_attacks().count(),
            'gold': player.gold,
            'blood': player.bloodstone,
            'gems': player.gems,
            'wood': player.wood,
            'ore': player.ore}
    return HttpResponse(simplejson.dumps(data, cls=DjangoJSONEncoder))