diff --git a/static/app.js b/static/app.js
index ebf7142..05a75de 100644
--- a/static/app.js
+++ b/static/app.js
@@ -360,7 +360,7 @@ function topbar() {
let chips = "";
if (S.me?.action) {
const action = C.actions.find((a) => a.id === (S.me.action.growing || S.me.action.id));
- chips += ``;
+ chips += ``;
} else if (S.me) {
chips += `Idle${S.me.stopped ? ` · ${esc(S.me.stopped)}` : ""}`;
}
@@ -421,7 +421,7 @@ function skillPage(id) {
${fast ? `${cls.icon} ${cls.name} bonus` : ""}
`;
- if (id === "combat") html += fightPanel() + combatPanel();
+ if (id === "combat") html += combatFrame();
if (id === "prayer") html += prayerPanel();
if (id === "construction") html += S.city.construction ? siteBanner()
: `
Nothing under construction.
`;
@@ -550,21 +550,45 @@ function variantRows(e, o) {
}).join("")}`;
}
-// The fight in progress, replayed from the server's swing-by-swing record.
-function fightPanel() {
- const f = S.me.action?.fight;
- if (!f) return "";
- const side = (who, name, foe) => `
-
${esc(name)}${foe ? `${resistIcons(foe)}` : ""}
-
-
+// Everything about fighting in one frame. Left: you, your prayers (switch them mid-fight) and your
+// gear (swap it mid-fight). Right: what you're fighting, what it attacks with, what it's weak to and
+// resists (your weapon's type outlined), and the fight as it plays out.
+function combatFrame() {
+ const me = S.me, a = me.action, f = a?.fight;
+ const encounter = f && C.actions.find((x) => x.id === a.id);
+ const bars = (who) => `
`;
}
+// Prayers you can switch on and off between swings, and the points left to pay for them.
+function prayerBar(me) {
+ const level = me.levels.prayer;
+ const buttons = C.prayers.filter((p) => p.level <= level).map((p) => {
+ const on = me.prayers.includes(p.id);
+ return ``;
+ }).join("");
+ return `