character sheet more editable
This commit is contained in:
Binary file not shown.
Binary file not shown.
35
app.py
35
app.py
@@ -18,8 +18,9 @@ def index():
|
|||||||
tab = request.args.get("tab", default="what", type=str)
|
tab = request.args.get("tab", default="what", type=str)
|
||||||
return render_template("index.html", tab=tab)
|
return render_template("index.html", tab=tab)
|
||||||
|
|
||||||
@app.route('/party', methods = ["GET","POST"])
|
@app.route('/party', methods = ["GET"])
|
||||||
def party():
|
def party():
|
||||||
|
print("generating party")
|
||||||
stored_adv_party = []
|
stored_adv_party = []
|
||||||
stored_count = None
|
stored_count = None
|
||||||
stored_level = None
|
stored_level = None
|
||||||
@@ -71,16 +72,30 @@ def party():
|
|||||||
@app.route('/character', methods = ["GET","POST"])
|
@app.route('/character', methods = ["GET","POST"])
|
||||||
def character():
|
def character():
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
print('in get')
|
c_id = request.args.get("id", default="adv-1", type=str)
|
||||||
c_id = str(request.args.get("id", default="adv-1", type=str))
|
level = request.args.get("level", default=1, type=int)
|
||||||
if request.cookies:
|
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_encoded = request.cookies[c_id]
|
||||||
cookie_compressed = base64.urlsafe_b64decode(cookie_encoded)
|
cookie_compressed = base64.urlsafe_b64decode(cookie_encoded)
|
||||||
character_dict = json.loads(zlib.decompress(cookie_compressed).decode())
|
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:
|
else:
|
||||||
print('in else')
|
new_char = Adventurer(c_id, 1)
|
||||||
new_player = Adventurer(c_id, 1)
|
selected_class = ClassSelector(new_char).selection()
|
||||||
selected_class = ClassSelector(new_player).selection()
|
character = selected_class(new_char.identifier, new_char.level, new_char.get_attributes())
|
||||||
new_char = selected_class(new_player.identifier, new_player.level, new_player.get_attributes())
|
response = make_response(render_template("character.html", character=character, level=level, cache=cache,role=role))
|
||||||
return render_template("character.html", character=new_char)
|
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
|
||||||
|
|||||||
@@ -35,6 +35,52 @@
|
|||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
|
<div class="block">
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column" >
|
||||||
|
<p>Select a Class</p>
|
||||||
|
<div class="dropdown is-hoverable">
|
||||||
|
<div class="dropdown-trigger">
|
||||||
|
<button class="button" aria-haspopup="true" aria-controls="dropdown-menu">
|
||||||
|
<span>{{role.title()}}</span>
|
||||||
|
<span class="icon is-small">
|
||||||
|
<i class="fas fa-angle-down" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown-menu" id="dropdown-menu" role="menu">
|
||||||
|
<div class="dropdown-content">
|
||||||
|
{%for c in ['fighter','magic-user', 'cleric', 'thief', 'dwarf', 'elf', 'halfling'] %}
|
||||||
|
{% if role == c %}
|
||||||
|
<a href="{{ '/character?level={}&role={}&cache=true'.format(level,c) }}" class="dropdown-item is-active">{{c.title()}}</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{{ '/character?level={}&role={}&cache=true'.format(level,c) }}" class="dropdown-item">{{c.title()}}</a>
|
||||||
|
{% endif %}
|
||||||
|
{%endfor%}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="column" >
|
||||||
|
<p>Character Level</p>
|
||||||
|
<div class="buttons">
|
||||||
|
{%for j in range(1,6)%}
|
||||||
|
{% if level|int() == j|int() %}
|
||||||
|
<a class="button is-primary" href="{{ '/character?&level={}&role={}&cache=true'.format(j,role) }}">{{j}}</a>
|
||||||
|
{% else %}
|
||||||
|
<a class="button" href="{{ '/character?&level={}&role={}&cache=true'.format(j,role) }}">{{j}}</a>
|
||||||
|
{% endif %}
|
||||||
|
{%endfor%}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="column" >
|
||||||
|
<p>Generate new character sheet</p>
|
||||||
|
<div class="buttons">
|
||||||
|
<a class="button is-danger is-outlined" href="{{ '/character?&level={}&role={}&cache=false'.format(j,role,cache) }}">Re-Roll Character</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<h3>{{character.adv_class.title()}} - Level {{character.level}}</h3>
|
<h3>{{character.adv_class.title()}} - Level {{character.level}}</h3>
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
|
|||||||
Reference in New Issue
Block a user