def brawl_add_character(): """ Add character to brawl """ # grab required form elements from POST name = request.form['name'] initiative_modifier = request.form['initiative_modifier'] armor_class = int(request.form['armor_class']) hit_points = int(request.form['hit_points']) # load brawl from cookie brawl = get_brawl_cookie(request) # if - or + operator not added to initiative, set it positive modifier if not re.search('^[\-|\+]', initiative_modifier): initiative_modifier = '+%s' % int(initiative_modifier) if 'url' in request.form: url = request.form['url'] else: url = None # handle multiple monsters try: brawl = add_character( brawl, name, initiative_modifier, armor_class, hit_points, url) except CookieLimit: return render_template('error.html', message='Browser cookie do not support more monsters'), 409 # render brawl return set_brawl_cookie(brawl)
def brawl_update_monster(): """ Update a monsters stats """ # grab required form elements from POST name = request.form['name'] color = request.form['color'] identifier = request.form['identifier'] armor_class = int(request.form['armor_class']) hit_points = request.form['hit_points'] notes = request.form.get('notes') or '' conditions = [c for c in get_conditions() if c in request.form] # handle blank initiaive initiative = request.form['initiative'] if initiative: initiative = int(initiative) # load brawl from cookie brawl = get_brawl_cookie(request) # update monster brawl = update_monster( name, brawl, identifier, initiative, armor_class, hit_points, notes, conditions, color) # render brawl return set_brawl_cookie(brawl)
def brawl_add_monster(): """ Add monster to brawl """ # required url params slug_name = request.args['slug_name'] quantity = int(request.args.get('quantity', 1)) # load brawl from cookie brawl = get_brawl_cookie(request) # perform a search monster = find_one('monsters', slug_name=slug_name) # if we have a result render monster if monster: # handle multiple monsters try: brawl = add_monsters(brawl, monster, quantity) except CookieLimit: return render_template('error.html', message='Browser cookie do not support more monsters'), 409 # render brawl return set_brawl_cookie(brawl) # if we do not have a result render error return render_template('error.html', message='Monster %s not found' % slug_name), 404
def brawl_roll_initiative(): """ Roll initiative for brawl """ # load brawl from cookie brawl = get_brawl_cookie(request) # roll initiaive brawl = roll_initiative(brawl) # render brawl return set_brawl_cookie(brawl)
def brawl_reset(): """ Clear monsters from brawl and reset initiative """ # load brawl from cookie brawl = get_brawl_cookie(request) # remove monsters and initative from brawl brawl = remove_monsters(brawl) brawl = remove_initative(brawl) # render brawl return set_brawl_cookie(brawl)
def brawl_set_turn(): """ Set monsters turn """ # grab required form elements from POST identifier = request.form['identifier'] # load brawl from cookie brawl = get_brawl_cookie(request) # roll initiaive brawl = set_turn(brawl, identifier) # render brawl return set_brawl_cookie(brawl)
def brawl_remove_monster(): """ Remove monster from brawl """ # grab required form elements from POST identifier = request.args['identifier'] # load brawl from cookie brawl = get_brawl_cookie(request) # roll initiaive brawl = remove_monster(brawl, identifier) # render brawl return set_brawl_cookie(brawl)
def brawl(): """ Show brawl """ # load brawl from cookie brawl = get_brawl_cookie(request) # get list of monster challenge_ratings cr = find_challenge_ratings() # get list of environments environments = find_environments() # render brawl return render_template('brawl.html', brawl=brawl, challenge_rating=cr, environments=environments)
def brawl_add_random_monster(): """ Add random monster to brawl """ if request.method == 'POST': min_cr = request.form.get('min_cr') max_cr = request.form.get('max_cr') quantity = int(request.form.get('quantity', 1)) environment = request.form.get('environment') elif request.method == 'GET': min_cr = request.args.get('min_cr') max_cr = request.args.get('max_cr') quantity = int(request.args.get('quantity', 1)) environment = request.args.get('environment') # load brawl from cookie brawl = get_brawl_cookie(request) # handle multiple monsters for _ in range(quantity): # get a random monster try: monster = find_random_monster(min_cr, max_cr, environment) except NoMonster: return render_template('error.html', message='No monster with challage rating found'), 404 # add monster to brawl try: brawl = add_monsters(brawl, monster, 1) except CookieLimit: return render_template('error.html', message='Browser cookie do not support more monsters'), 409 # render brawl return set_brawl_cookie(brawl)