diff --git a/__pycache__/adventurers.cpython-312.pyc b/__pycache__/adventurers.cpython-312.pyc index 551c3ee..7ff5625 100644 Binary files a/__pycache__/adventurers.cpython-312.pyc and b/__pycache__/adventurers.cpython-312.pyc differ diff --git a/__pycache__/app.cpython-312.pyc b/__pycache__/app.cpython-312.pyc index 5424448..5b659f2 100644 Binary files a/__pycache__/app.cpython-312.pyc and b/__pycache__/app.cpython-312.pyc differ diff --git a/app.py b/app.py index bcff9d7..96c15de 100644 --- a/app.py +++ b/app.py @@ -18,8 +18,9 @@ def index(): tab = request.args.get("tab", default="what", type=str) return render_template("index.html", tab=tab) -@app.route('/party', methods = ["GET","POST"]) +@app.route('/party', methods = ["GET"]) def party(): + print("generating party") stored_adv_party = [] stored_count = None stored_level = None @@ -71,16 +72,30 @@ def party(): @app.route('/character', methods = ["GET","POST"]) def character(): if request.method == "GET": - print('in get') - c_id = str(request.args.get("id", default="adv-1", type=str)) - if request.cookies: + c_id = request.args.get("id", default="adv-1", type=str) + level = request.args.get("level", default=1, type=int) + role = request.args.get("role", default="fighter", type=str) + cache = request.args.get("cache", default='true', type=str) + if request.cookies and cache == "true": cookie_encoded = request.cookies[c_id] cookie_compressed = base64.urlsafe_b64decode(cookie_encoded) character_dict = json.loads(zlib.decompress(cookie_compressed).decode()) - new_char = createCharacterWithDict(character_dict) + character = createCharacterWithDict(character_dict) + if character.level != level: + character.set_level(level) + # reroll until we get our class + while character.player_class != role.replace("-"," "): + new_char = Adventurer(c_id, 1) + selected_class = ClassSelector(new_char).selection() + character = selected_class(new_char.identifier, new_char.level, new_char.get_attributes()) else: - print('in else') - new_player = Adventurer(c_id, 1) - selected_class = ClassSelector(new_player).selection() - new_char = selected_class(new_player.identifier, new_player.level, new_player.get_attributes()) - return render_template("character.html", character=new_char) + new_char = Adventurer(c_id, 1) + selected_class = ClassSelector(new_char).selection() + character = selected_class(new_char.identifier, new_char.level, new_char.get_attributes()) + response = make_response(render_template("character.html", character=character, level=level, cache=cache,role=role)) + cookie_string = character.identifier + char_json = json.dumps(character.get_json()) + compressed = zlib.compress(char_json.encode()) + cookie_data = base64.urlsafe_b64encode(compressed).decode() + response.set_cookie(cookie_string, cookie_data) + return response diff --git a/templates/character.html b/templates/character.html index 6dcc8f4..15fb714 100644 --- a/templates/character.html +++ b/templates/character.html @@ -35,6 +35,52 @@
+
+
+
+

Select a Class

+ +
+
+

Character Level

+
+ {%for j in range(1,6)%} + {% if level|int() == j|int() %} + {{j}} + {% else %} + {{j}} + {% endif %} + {%endfor%} +
+
+ +
+

Generate new character sheet

+ +
+

{{character.adv_class.title()}} - Level {{character.level}}