+
* Since tunic doesn't save when you do a code, it won't update until you do something that causes the game to make a new save, like pausing, going to another area, or clearing a check.
diff --git a/tunictracker/tracker/templates/tracker/index.html b/tunictracker/tracker/templates/tracker/index.html
index e6036b8..8095f85 100644
--- a/tunictracker/tracker/templates/tracker/index.html
+++ b/tunictracker/tracker/templates/tracker/index.html
@@ -6,39 +6,49 @@
{% if debug != '' %}
-
-
+
+
-
+
Tunic Transition Tracker
+
+
+ (
+
tuniik' t'raan'ziishuun' t'raakx
+ )
- (Tunic Transition Tracker)
- {% include "tracker/howto/index.html" %}
-
+
-
Checks: {{ totals.Checks.Undiscovered }}/{{ totals.Checks.Total }}
-
- Entrances: {{ totals.Entrances.Undiscovered }}/{{ totals.Entrances.Total }}
+
+
+
+ Checks
+
+
+
+ {{ totals.Checks.Undiscovered }}/{{ totals.Checks.Total }} ({{ totals.Checks.Remaining }} left)
+
+
+
+
+
+
+ Entrances
+
+
+
+ {{ totals.Entrances.Undiscovered }}/{{ totals.Entrances.Total }} ({{ totals.Entrances.Remaining }} left)
+
+
-
- Summary
-
-
-
{% include "tracker/summary/list.html" %}
-
-
@@ -48,20 +58,36 @@
{% include "tracker/breakdown/block.html" with extra_classes="hidden" is_current_scene="false" %}
{% for scene_title, scene_data in scenes.items %}
{% if scene_title == current_scene %}
- {% include "tracker/breakdown/block.html" with extra_classes="order-last" is_current_scene="true" %}
+ {% include "tracker/breakdown/block.html" with extra_classes="order-first" is_current_scene="true" %}
{% else %}
- {% include "tracker/breakdown/block.html" with extra_classes="hidden" is_current_scene="false" %}
+ {% include "tracker/breakdown/block.html" with extra_classes="order-last hidden" is_current_scene="false" %}
{% endif %}
{% endfor %}
- {% comment %}
- {% include "tracker/breakdown/block.html" with scene_title=current_scene.title scene_data=current_scene.data %}
-
{% endcomment %}
- {% include "tracker/codes/index.html" %}
-
+
+ Summary
+
+
+
{% include "tracker/summary/list.html" %}
+
+
+ {% include "tracker/codes/index.html" %}
+
+ Hints
+
+
+
+ {% include "tracker/hints/index.html" with value="" %}
+ {% for name, value in hints.items %}
+ {% include "tracker/hints/index.html" %}
+ {% endfor %}
+
+
+
+
Settings
- {% comment %} {% include "tracker/settings/index.html" %} {% endcomment %}
{% include "tracker/address/index.html" %}
+ {% include "tracker/howto/index.html" %}
{% else %}
{% endif %}
diff --git a/tunictracker/tracker/templates/tracker/summary/block.html b/tunictracker/tracker/templates/tracker/summary/block.html
index f7869c6..64de2ab 100644
--- a/tunictracker/tracker/templates/tracker/summary/block.html
+++ b/tunictracker/tracker/templates/tracker/summary/block.html
@@ -7,12 +7,12 @@
- Checks: {{ scene_data.checks.collected }}/{{ scene_data.checks.total }}
+ Checks: {{ scene_data.checks.collected }}/{{ scene_data.checks.total }} ({{ scene_data.checks.remaining }})
- Entrances: {{ scene_data.entrances.found }}/{{ scene_data.entrances.total }}
+ Entrances: {{ scene_data.entrances.found }}/{{ scene_data.entrances.total }} ({{ scene_data.entrances.remaining }})
diff --git a/tunictracker/tracker/views.py b/tunictracker/tracker/views.py
index 1d90d1a..c8c390e 100644
--- a/tunictracker/tracker/views.py
+++ b/tunictracker/tracker/views.py
@@ -4,7 +4,7 @@ from django.template import loader
from json import loads, dumps
from math import floor
import requests
-from .forms import ServerAddressForm # , BackendFilepathForm
+from .forms import ServerAddressForm
import logging
# Create your views here.
@@ -12,8 +12,6 @@ import logging
# Debug and defaults.
defaults = {
"listen_address": "http://localhost:51111/",
- # 'backend_filepath': '',
- # 'backend_filepath_updated': False,
}
logging.basicConfig(encoding="utf-8", level=logging.DEBUG)
@@ -35,7 +33,6 @@ def session_key(session, key):
def index(request):
listen_address = session_key(request.session, "listen_address")
- # backend_filepath = session_key(request.session, 'backend_filepath')
try:
request_overview_data = requests.get(
@@ -50,31 +47,19 @@ def index(request):
request_hints_data = requests.get(
f"{listen_address}hints", timeout=5, verify=True
).text
- # if (loads(request_data)['Scenes'] == None):
- # with open('empty_spoiler.json', 'r') as t:
- # try:
- # request_data = t.read()
-
- # except:
- # return
- except:
- with open("empty_spoiler.json", "r") as t:
- try:
- tracker_output = loads(t.read())
-
- except:
- return
- try:
tracker_overview_data = loads(request_overview_data)
tracker_items_data = loads(request_items_data)
tracker_doors_data = loads(request_doors_data)
tracker_hints_data = loads(request_hints_data)
except:
- with open("empty_spoiler.json", "r") as t:
- try:
- tracker_output = loads(t.read())
- except:
- return
+ with open("less_fun_overview.json", "r") as t:
+ tracker_overview_data = loads(t.read())
+ with open("less_fun_items.json", "r") as t:
+ tracker_items_data = loads(t.read())
+ with open("less_fun_doors.json", "r") as t:
+ tracker_doors_data = loads(t.read())
+ with open("less_fun_hints.json", "r") as t:
+ tracker_hints_data = loads(t.read())
with open("tracker/static/tracker/data/holy_cross_codes.json", "r") as t:
try:
temp_codes = loads(t.read())
@@ -92,13 +77,6 @@ def index(request):
except:
return
- # tracker_debug = tracker_output['Debug']
- # tracker_totals = tracker_output['Totals']
- # tracker_current_scene = tracker_output['Current']['Scene']
- # tracker_current_scene_data = tracker_output['Scenes'][tracker_current_scene]
- # tracker_scenes = tracker_output['Scenes']
- # entered_codes = tracker_output['Codes']
-
# Data from the /overview API call
tracker_current_scene = tracker_overview_data["scene"]
tracker_seed = tracker_overview_data["seed"]
@@ -107,10 +85,12 @@ def index(request):
# Data from the /doors API call
tracker_entrances_total = tracker_doors_data["total"]
+ tracker_entrances_remaining = tracker_doors_data["remaining"]
tracker_entrances_mapped_total = tracker_doors_data["found"]
# Data from the /items API call
tracker_checks_total = tracker_items_data["total"]
+ tracker_checks_remaining = tracker_items_data["remaining"]
tracker_checks_cleared_total = tracker_items_data["collected"]
active_codes = {}
@@ -121,16 +101,6 @@ def index(request):
}
logging.debug(active_codes)
- # try:
- # tracker_codes = cross_codes
- # for scene in entered_codes:
- # for k, v in cross_codes[scene].items():
- # tracker_codes[scene][k] = (
- # v, entered_codes[scene][k])
- # except Exception as e:
- # current_cross_codes = {}
- # # print(e)
-
scene_data = {}
for scene in tracker_doors_data["scenes"].keys():
scene_data[scene] = {
@@ -141,64 +111,34 @@ def index(request):
template = loader.get_template("tracker/index.html")
server_address_form = ServerAddressForm()
server_address_form.fields["server_address_form"].initial = listen_address
- # backend_filepath_form = BackendFilepathForm()
- # backend_filepath_form.fields['backend_filepath_form'].initial = backend_filepath
logging.debug(format_overview_output(tracker_overview_data))
context = {
- # 'backend_filepath': backend_filepath,
"server_address": listen_address,
- # 'is_hidden': is_hidden,
"debug": {},
"default_codes": cross_codes["Default"],
"totals": {
"Checks": {
"Undiscovered": tracker_checks_cleared_total,
+ "Remaining": tracker_checks_remaining,
"Total": tracker_checks_total,
},
"Entrances": {
"Undiscovered": tracker_entrances_mapped_total,
+ "Remaining": tracker_entrances_remaining,
"Total": tracker_entrances_total,
},
},
"scenes": scene_data,
"current_scene": tracker_current_scene,
- # "current_scene": {
- # "title": tracker_current_scene,
- # "data": {
- # "checks": tracker_items_data["scenes"][tracker_current_scene],
- # "entrances": tracker_doors_data["scenes"][tracker_current_scene],
- # "Totals": {
- # "Checks": {
- # "Undiscovered": tracker_items_data["scenes"][
- # tracker_current_scene
- # ]["collected"],
- # "Total": tracker_items_data["scenes"][tracker_current_scene][
- # "total"
- # ],
- # },
- # "Entrances": {
- # "Undiscovered": tracker_doors_data["scenes"][
- # tracker_current_scene
- # ]["found"],
- # "Total": tracker_doors_data["scenes"][tracker_current_scene][
- # "total"
- # ],
- # },
- # },
- # "Codes": tracker_current_scene_codes,
- # },
"codes": active_codes,
- # },
"server_address_form": server_address_form,
- # 'backend_filepath_form': backend_filepath_form
+ "hints": tracker_hints_data,
}
return HttpResponse(template.render(context, request))
def get_address(request):
if request.method == "GET":
- # session_key(request.session, 'backend_filepath_updated')
- # 'backend_filepath_updated': request.session['backend_filepath_updated']}), content_type="application/json")
return HttpResponse(
dumps({"listen_address": request.session["listen_address"]}),
content_type="application/json",
@@ -218,26 +158,6 @@ def set_address(request):
return render(request, "tracker/index.html", {"server_address_form": form})
-# def set_settings(request):
-# if request.method == 'POST':
-# form = BackendFilepathForm(request.POST)
-# if form.is_valid():
-# request.session['backend_filepath'] = form.cleaned_data['backend_filepath_form']
-# request.session['backend_filepath_updated'] = True
-# return HttpResponseRedirect('/')
-# else:
-# form = BackendFilepathForm()
-# return render(request, 'tracker/index.html', {'backend_filepath_form': form})
-
-
-# def get_settings(request):
-# if request.method == 'GET':
-# request.session['backend_filepath_updated'] = False
-# return HttpResponse(dumps(request.session['backend_filepath']), content_type="application/json")
-# else:
-# return render(request, 'tracker/index.html')
-
-
def format_overview_output(overview):
overview_string = "\nReceived Overview Data:\n"
for key, value in overview.items():
diff --git a/tunictracker/tunictracker/settings.py b/tunictracker/tunictracker/settings.py
index 90d1551..ecc1e33 100644
--- a/tunictracker/tunictracker/settings.py
+++ b/tunictracker/tunictracker/settings.py
@@ -28,6 +28,7 @@ DEBUG = True
ALLOWED_HOSTS = [
"localhost",
"127.0.0.1",
+ "100.64.0.4",
"tunic.werefox.cafe"
]
diff --git a/tunictracker/werefoxtheme/static/fonts/Trunic-Regular.otf b/tunictracker/werefoxtheme/static/fonts/Trunic-Regular.otf
new file mode 100644
index 0000000..da4a6e8
Binary files /dev/null and b/tunictracker/werefoxtheme/static/fonts/Trunic-Regular.otf differ
diff --git a/tunictracker/werefoxtheme/static_src/src/fonts/Trunic-Regular.otf b/tunictracker/werefoxtheme/static_src/src/fonts/Trunic-Regular.otf
new file mode 100644
index 0000000..da4a6e8
Binary files /dev/null and b/tunictracker/werefoxtheme/static_src/src/fonts/Trunic-Regular.otf differ
diff --git a/tunictracker/werefoxtheme/static_src/src/styles.css b/tunictracker/werefoxtheme/static_src/src/styles.css
index 391d723..71bfc11 100644
--- a/tunictracker/werefoxtheme/static_src/src/styles.css
+++ b/tunictracker/werefoxtheme/static_src/src/styles.css
@@ -3,6 +3,10 @@
@tailwind utilities;
@font-face {
- font-family: "DejaVuSansMono";
- src: url("/static/fonts/DejaVuSansMono.ttf");
-}
\ No newline at end of file
+ font-family: "DejaVuSansMono";
+ src: url("/static/fonts/DejaVuSansMono.ttf");
+}
+@font-face {
+ font-family: "Trunic-Regular";
+ src: url("/static/fonts/Trunic-Regular.otf");
+}
diff --git a/tunictracker/werefoxtheme/static_src/tailwind.config.js b/tunictracker/werefoxtheme/static_src/tailwind.config.js
index 7732a61..310824d 100644
--- a/tunictracker/werefoxtheme/static_src/tailwind.config.js
+++ b/tunictracker/werefoxtheme/static_src/tailwind.config.js
@@ -52,6 +52,7 @@ module.exports = {
extend: {
fontFamily: {
nerd: ["DejaVuSansMono"],
+ trunic: ["Trunic-Regular"],
},
colors: {
bluelight: {
@@ -118,6 +119,109 @@ module.exports = {
DEFAULT: "fffae0",
},
},
+ keyframes: {
+ shake: {
+ "2%": { transform: "translate(-0.5px, 2.5px) " },
+ "2%": { transform: "rotate(-0.5deg)" },
+ "4%": { transform: "translate(0.5px, -1.5px) " },
+ "4%": { transform: "rotate(-0.5deg)" },
+ "6%": { transform: "translate(1.5px, -1.5px) " },
+ "6%": { transform: "rotate(1.5deg)" },
+ "8%": { transform: "translate(0.5px, 2.5px) " },
+ "8%": { transform: "rotate(-0.5deg)" },
+ "10%": { transform: "translate(-1.5px, 2.5px) " },
+ "10%": { transform: "rotate(1.5deg)" },
+ "12%": { transform: "translate(2.5px, -0.5px) " },
+ "12%": { transform: "rotate(-0.5deg)" },
+ "14%": { transform: "translate(2.5px, 2.5px) " },
+ "14%": { transform: "rotate(1.5deg)" },
+ "16%": { transform: "translate(1.5px, 1.5px) " },
+ "16%": { transform: "rotate(0.5deg)" },
+ "18%": { transform: "translate(0.5px, 2.5px) " },
+ "18%": { transform: "rotate(1.5deg)" },
+ "20%": { transform: "translate(1.5px, -1.5px) " },
+ "20%": { transform: "rotate(-0.5deg)" },
+ "22%": { transform: "translate(0.5px, 1.5px) " },
+ "22%": { transform: "rotate(1.5deg)" },
+ "24%": { transform: "translate(-0.5px, 1.5px) " },
+ "24%": { transform: "rotate(0.5deg)" },
+ "26%": { transform: "translate(-1.5px, -1.5px) " },
+ "26%": { transform: "rotate(0.5deg)" },
+ "28%": { transform: "translate(1.5px, 2.5px) " },
+ "28%": { transform: "rotate(1.5deg)" },
+ "30%": { transform: "translate(2.5px, -1.5px) " },
+ "30%": { transform: "rotate(1.5deg)" },
+ "32%": { transform: "translate(1.5px, 1.5px) " },
+ "32%": { transform: "rotate(1.5deg)" },
+ "34%": { transform: "translate(2.5px, 0.5px) " },
+ "34%": { transform: "rotate(-0.5deg)" },
+ "36%": { transform: "translate(2.5px, -0.5px) " },
+ "36%": { transform: "rotate(-0.5deg)" },
+ "38%": { transform: "translate(0.5px, 0.5px) " },
+ "38%": { transform: "rotate(0.5deg)" },
+ "40%": { transform: "translate(1.5px, -1.5px) " },
+ "40%": { transform: "rotate(1.5deg)" },
+ "42%": { transform: "translate(0.5px, -0.5px) " },
+ "42%": { transform: "rotate(0.5deg)" },
+ "44%": { transform: "translate(-0.5px, -0.5px) " },
+ "44%": { transform: "rotate(-0.5deg)" },
+ "46%": { transform: "translate(1.5px, 2.5px) " },
+ "46%": { transform: "rotate(-0.5deg)" },
+ "48%": { transform: "translate(2.5px, 2.5px) " },
+ "48%": { transform: "rotate(1.5deg)" },
+ "50%": { transform: "translate(0.5px, 2.5px) " },
+ "50%": { transform: "rotate(1.5deg)" },
+ "52%": { transform: "translate(1.5px, -1.5px) " },
+ "52%": { transform: "rotate(1.5deg)" },
+ "54%": { transform: "translate(0.5px, 0.5px) " },
+ "54%": { transform: "rotate(1.5deg)" },
+ "56%": { transform: "translate(1.5px, 1.5px) " },
+ "56%": { transform: "rotate(0.5deg)" },
+ "58%": { transform: "translate(0.5px, 0.5px) " },
+ "58%": { transform: "rotate(1.5deg)" },
+ "60%": { transform: "translate(-0.5px, 0.5px) " },
+ "60%": { transform: "rotate(-0.5deg)" },
+ "62%": { transform: "translate(2.5px, -1.5px) " },
+ "62%": { transform: "rotate(1.5deg)" },
+ "64%": { transform: "translate(2.5px, -0.5px) " },
+ "64%": { transform: "rotate(0.5deg)" },
+ "66%": { transform: "translate(0.5px, 0.5px) " },
+ "66%": { transform: "rotate(1.5deg)" },
+ "68%": { transform: "translate(-1.5px, -0.5px) " },
+ "68%": { transform: "rotate(0.5deg)" },
+ "70%": { transform: "translate(2.5px, 0.5px) " },
+ "70%": { transform: "rotate(-0.5deg)" },
+ "72%": { transform: "translate(1.5px, 0.5px) " },
+ "72%": { transform: "rotate(1.5deg)" },
+ "74%": { transform: "translate(0.5px, 0.5px) " },
+ "74%": { transform: "rotate(1.5deg)" },
+ "76%": { transform: "translate(-1.5px, -0.5px) " },
+ "76%": { transform: "rotate(0.5deg)" },
+ "78%": { transform: "translate(-1.5px, -1.5px) " },
+ "78%": { transform: "rotate(-0.5deg)" },
+ "80%": { transform: "translate(-0.5px, -0.5px) " },
+ "80%": { transform: "rotate(0.5deg)" },
+ "82%": { transform: "translate(-0.5px, 1.5px) " },
+ "82%": { transform: "rotate(1.5deg)" },
+ "84%": { transform: "translate(-1.5px, 2.5px) " },
+ "84%": { transform: "rotate(-0.5deg)" },
+ "86%": { transform: "translate(-1.5px, -0.5px) " },
+ "86%": { transform: "rotate(-0.5deg)" },
+ "88%": { transform: "translate(2.5px, -0.5px) " },
+ "88%": { transform: "rotate(-0.5deg)" },
+ "90%": { transform: "translate(2.5px, -1.5px) " },
+ "90%": { transform: "rotate(-0.5deg)" },
+ "92%": { transform: "translate(2.5px, 0.5px) " },
+ "92%": { transform: "rotate(-0.5deg)" },
+ "94%": { transform: "translate(0.5px, 1.5px) " },
+ "94%": { transform: "rotate(-0.5deg)" },
+ "96%": { transform: "translate(1.5px, 2.5px) " },
+ "96%": { transform: "rotate(0.5deg)" },
+ "98%": { transform: "translate(2.5px, -0.5px) " },
+ "98%": { transform: "rotate(1.5deg)" },
+ "0%, 100%": { transform: "translate(0, 0) rotate(0)" },
+ },
+ },
},
},
plugins: [