23 lines
790 B
Python
23 lines
790 B
Python
from django.http import HttpResponse
|
|
from django.template import loader
|
|
|
|
from map import map_generator
|
|
from map import map_renderer
|
|
from map.map_renderer import RenderedMap
|
|
from map.quest_map import QuestMap
|
|
|
|
|
|
def _ordinal(level):
|
|
return {1: '1st', 2: '2nd', 3: '3rd', 4: '4th', 5: '5th'}[level]
|
|
|
|
|
|
def index(request):
|
|
level = int(request.GET.get('level', 1))
|
|
if level not in range(1, 5 + 1):
|
|
raise Exception(f'Level should be in range [1, 5] but was {level}')
|
|
quest_map: QuestMap = map_generator.generate_map(level)
|
|
rendered_map: RenderedMap = map_renderer.render_map(quest_map)
|
|
|
|
template = loader.get_template('map/index.html')
|
|
context = {'level_ordinal': _ordinal(level), 'map': rendered_map}
|
|
return HttpResponse(template.render(context, request))
|