REM-Client 3a548389: QoL round - clan invite / wishlist / places, pilot overview and warnings, trade routes and stock warnings, saved bot routes, mail templates (rem-server 2b86320)
This commit is contained in:
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
REM-Client test build (64-bit)
|
REM-Client test build (64-bit)
|
||||||
date: 2026-11-10 21:43
|
date: 2026-11-10 22:32
|
||||||
commit: 49bca0f3 (main)
|
commit: 3a548389 (main)
|
||||||
subject: Merge clans: Player window page Clan (members, bank & depot, ranks, log, diplomacy, NPC profile, upkeep), clan tag, clan system rules
|
subject: QoL round (rem-server dc5bc86 / 2b86320)
|
||||||
tree: clean
|
tree: clean
|
||||||
build: OK
|
build: OK
|
||||||
|
|||||||
Binary file not shown.
+29
-2
@@ -227,8 +227,28 @@
|
|||||||
<!-- ================================================= TRADE LOG (REM) -->
|
<!-- ================================================= TRADE LOG (REM) -->
|
||||||
<div class="page col" data-if="blocked == 0 && page == 12">
|
<div class="page col" data-if="blocked == 0 && page == 12">
|
||||||
<div class="col-h"><h3>Trade log</h3><span class="hint">{{ journal.size }} lines</span><div class="btn" data-action="journal-refresh" style="margin-left: 10dp;">Refresh</div></div>
|
<div class="col-h"><h3>Trade log</h3><span class="hint">{{ journal.size }} lines</span><div class="btn" data-action="journal-refresh" style="margin-left: 10dp;">Refresh</div></div>
|
||||||
<div class="hint" style="margin-bottom: 6dp;">{{ journal_note }}</div>
|
<div class="subtabs">
|
||||||
<div class="table grow">
|
<div class="tab" data-class-active="journal_sub == 0" data-action="journal-sub" data-arg="0">Log</div>
|
||||||
|
<div class="tab" data-class-active="journal_sub == 1" data-action="journal-sub" data-arg="1">Routes from here<div class="tip">The best trades from the base you are docked at, within reach, for your hold and credits.</div></div>
|
||||||
|
</div>
|
||||||
|
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 0">{{ journal_note }}</div>
|
||||||
|
<div class="actions" style="margin: 0 0 6dp 0;" data-if="journal_sub == 0">
|
||||||
|
<div class="btn" data-class-primary="journal_who == 0" data-action="journal-who" data-arg="0">All</div>
|
||||||
|
<div class="btn" data-class-primary="journal_who == 1" data-action="journal-who" data-arg="1">Mine</div>
|
||||||
|
<div class="btn" data-class-primary="journal_who == 2" data-action="journal-who" data-arg="2">My pilots</div>
|
||||||
|
<input class="text search" type="text" data-value="journal_find" maxlength="40" style="width: 200dp; margin-left: 10dp;"/>
|
||||||
|
<div class="btn" data-action="journal-csv" style="margin-left: 10dp;">Copy CSV<div class="tip">The lines shown (with the filter) into the clipboard - for a spreadsheet.</div></div>
|
||||||
|
</div>
|
||||||
|
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 0">{{ journal_sum }}</div>
|
||||||
|
<div class="hint" style="margin-bottom: 6dp;" data-if="journal_sub == 1">{{ route_note }} <span class="btn" data-action="routes-find" style="margin-left: 8dp;">Find routes</span></div>
|
||||||
|
<div class="table grow" data-if="journal_sub == 1">
|
||||||
|
<div class="head"><span class="c2" style="flex: 1;">Good</span><span class="c2" style="flex: 2;">To</span><span class="c3" style="width: 150dp; flex: none;">Buy > sell</span><span class="c3" style="width: 100dp; flex: none;">Units</span><span class="c3" style="width: 110dp; flex: none;">Profit</span></div>
|
||||||
|
<div class="body">
|
||||||
|
<div class="empty" data-if="routes.size == 0">No routes yet.</div>
|
||||||
|
<div class="row" data-for="r : routes" data-class-current="r.current"><span class="c2" style="flex: 1;">{{ r.a }}</span><span class="c2" style="flex: 2;">{{ r.b }}</span><span class="c3" style="width: 150dp; flex: none;">{{ r.c }}</span><span class="c3" style="width: 100dp; flex: none;">{{ r.d }}</span><span class="c3" style="width: 110dp; flex: none;">{{ r.e }}</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="table grow" data-if="journal_sub == 0">
|
||||||
<div class="head"><span class="c1" style="width: 130dp; flex: none;">When</span><span class="c2" style="flex: 1;">Deal</span><span class="c2" style="flex: 1;">Base</span><span class="c3" style="width: 150dp; flex: none;">Price (total)</span><span class="c3" style="width: 100dp; flex: none;">Profit</span></div>
|
<div class="head"><span class="c1" style="width: 130dp; flex: none;">When</span><span class="c2" style="flex: 1;">Deal</span><span class="c2" style="flex: 1;">Base</span><span class="c3" style="width: 150dp; flex: none;">Price (total)</span><span class="c3" style="width: 100dp; flex: none;">Profit</span></div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="empty" data-if="journal.size == 0">No trades yet. Buys and sales of commodities show here - yours and your pilots' - a sale with its profit against what was paid.</div>
|
<div class="empty" data-if="journal.size == 0">No trades yet. Buys and sales of commodities show here - yours and your pilots' - a sale with its profit against what was paid.</div>
|
||||||
@@ -915,6 +935,7 @@
|
|||||||
<div class="actions">
|
<div class="actions">
|
||||||
<div class="btn primary" data-if="mail_can_claim" data-action="mail-claim">Take credits and items<div class="tip">The credits go into your bank, the items into your depot on this base (dock at a base with your depot).</div></div>
|
<div class="btn primary" data-if="mail_can_claim" data-action="mail-claim">Take credits and items<div class="tip">The credits go into your bank, the items into your depot on this base (dock at a base with your depot).</div></div>
|
||||||
<div class="btn" data-action="mail-reply">Reply</div>
|
<div class="btn" data-action="mail-reply">Reply</div>
|
||||||
|
<div class="btn" data-action="mail-quote">Reply with quote<div class="tip">The answer with the letter below it, each line marked with "> ".</div></div>
|
||||||
<div class="btn" data-action="mail-delete">Delete</div>
|
<div class="btn" data-action="mail-delete">Delete</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -928,6 +949,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="namefield"><span class="label">Subject</span><input class="text" type="text" data-value="mail_subj" maxlength="100"/></div>
|
<div class="namefield"><span class="label">Subject</span><input class="text" type="text" data-value="mail_subj" maxlength="100"/></div>
|
||||||
<div class="label" style="margin-top: 6dp;">Text</div>
|
<div class="label" style="margin-top: 6dp;">Text</div>
|
||||||
|
<div class="actions" style="margin: 0 0 4dp 0; flex-wrap: wrap;">
|
||||||
|
<span class="chip" data-for="t : mail_tpls" data-action="mail-tpl" data-attr-data-arg="t.key" style="margin: 0 6dp 4dp 0;">{{ t.a }} <span data-action="mail-tpl-del" data-attr-data-arg="t.key">×</span></span>
|
||||||
|
<div class="btn" data-action="mail-tpl-save">Save as template<div class="tip">Subject and text for later - a click on the template fills them in again (eight at most; the same subject replaces it).</div></div>
|
||||||
|
</div>
|
||||||
<textarea class="mail-text" data-value="mail_text" rows="6"></textarea>
|
<textarea class="mail-text" data-value="mail_text" rows="6"></textarea>
|
||||||
<div class="namefield"><span class="label">Credits</span><input class="text" type="text" data-value="mail_credits" maxlength="12"/></div>
|
<div class="namefield"><span class="label">Credits</span><input class="text" type="text" data-value="mail_credits" maxlength="12"/></div>
|
||||||
<div class="hint" data-if="!mail_docked">Items come from your depot - dock at a base with your depot to attach them.</div>
|
<div class="hint" data-if="!mail_docked">Items come from your depot - dock at a base with your depot to attach them.</div>
|
||||||
@@ -967,6 +992,7 @@
|
|||||||
<div class="mid">
|
<div class="mid">
|
||||||
<div class="line1"><span class="n">{{ d.name }}</span><span data-attr-class="'state ' + d.state_class">{{ d.state }}</span></div>
|
<div class="line1"><span class="n">{{ d.name }}</span><span data-attr-class="'state ' + d.state_class">{{ d.state }}</span></div>
|
||||||
<div class="s">{{ d.kind }} · {{ d.plan }}</div>
|
<div class="s">{{ d.kind }} · {{ d.plan }}</div>
|
||||||
|
<div class="s" data-if="d.info != ''">{{ d.info }}</div>
|
||||||
<div class="bar"><div data-attr-class="'fill ' + d.hull_class" data-style-width="d.hull + '%'"></div></div>
|
<div class="bar"><div data-attr-class="'fill ' + d.hull_class" data-style-width="d.hull + '%'"></div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1064,6 +1090,7 @@
|
|||||||
<div class="actions">
|
<div class="actions">
|
||||||
<div class="btn" data-action="supply-set">Set</div>
|
<div class="btn" data-action="supply-set">Set</div>
|
||||||
<div class="btn" data-action="supply-remove">Remove</div>
|
<div class="btn" data-action="supply-remove">Remove</div>
|
||||||
|
<div class="btn" data-action="supply-copy">Copy to...<div class="tip">Copies all targets and sell rules of this pilot onto another trade pilot.</div></div>
|
||||||
<div class="btn primary" data-if="!haul_job || haul_mode != 3" data-action="supply-on">Start supplying</div>
|
<div class="btn primary" data-if="!haul_job || haul_mode != 3" data-action="supply-on">Start supplying</div>
|
||||||
<div class="btn" data-if="haul_job" data-action="supply-off">End job<div class="tip">The pilot trades on its own again (after it delivered what it carries); the targets are kept.</div></div>
|
<div class="btn" data-if="haul_job" data-action="supply-off">End job<div class="tip">The pilot trades on its own again (after it delivered what it carries); the targets are kept.</div></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -71,6 +71,8 @@
|
|||||||
.mi .bc { position: absolute; left: -4dp; top: -4dp; width: 8dp; height: 8dp; border-radius: 4dp; }
|
.mi .bc { position: absolute; left: -4dp; top: -4dp; width: 8dp; height: 8dp; border-radius: 4dp; }
|
||||||
.gwp .s { left: -5dp; top: -5dp; width: 10dp; height: 10dp; background-color: #6fd08c; border: 2dp #05080d; transform: rotate(45deg); }
|
.gwp .s { left: -5dp; top: -5dp; width: 10dp; height: 10dp; background-color: #6fd08c; border: 2dp #05080d; transform: rotate(45deg); }
|
||||||
.gwp .lbl { color: #6fd08c; }
|
.gwp .lbl { color: #6fd08c; }
|
||||||
|
.clanm .s { left: -5dp; top: -5dp; width: 10dp; height: 10dp; border-radius: 5dp; background-color: #5cc8f0; border: 2dp #05080d; }
|
||||||
|
.clanm .lbl { color: #5cc8f0; }
|
||||||
.hit.fold { padding: 6dp 10dp 2dp 10dp; color: #f2b13c; font-size: 12dp; border-bottom: 0; }
|
.hit.fold { padding: 6dp 10dp 2dp 10dp; color: #f2b13c; font-size: 12dp; border-bottom: 0; }
|
||||||
.hit .dot { width: 8dp; height: 8dp; border-radius: 4dp; margin: 5dp 8dp 0 0; }
|
.hit .dot { width: 8dp; height: 8dp; border-radius: 4dp; margin: 5dp 8dp 0 0; }
|
||||||
.hit .hw { font-size: 11dp; color: #8197ad; margin-left: 6dp; white-space: nowrap; }
|
.hit .hw { font-size: 11dp; color: #8197ad; margin-left: 6dp; white-space: nowrap; }
|
||||||
|
|||||||
@@ -52,6 +52,8 @@
|
|||||||
.cl-log .row .c3 { flex: 1; width: auto; color: #b9cbe0; text-align: left; font-family: Barlow; margin-left: 10dp; }
|
.cl-log .row .c3 { flex: 1; width: auto; color: #b9cbe0; text-align: left; font-family: Barlow; margin-left: 10dp; }
|
||||||
.cl-items .row .c1 { flex: 1; }
|
.cl-items .row .c1 { flex: 1; }
|
||||||
.cl-items .row .c3 { width: 80dp; text-align: right; font-family: "IBM Plex Mono"; }
|
.cl-items .row .c3 { width: 80dp; text-align: right; font-family: "IBM Plex Mono"; }
|
||||||
|
.cl-items .row .c2 { width: 140dp; color: #8197ad; font-size: 13dp; }
|
||||||
|
.cl-items .row .c1.done { color: #6fd08c; }
|
||||||
.amount { display: flex; flex-direction: row; align-items: center; margin: 8dp 0; }
|
.amount { display: flex; flex-direction: row; align-items: center; margin: 8dp 0; }
|
||||||
.amount .label { margin-right: 10dp; color: #8197ad; }
|
.amount .label { margin-right: 10dp; color: #8197ad; }
|
||||||
.amount input.range { flex: 1; margin-right: 10dp; }
|
.amount input.range { flex: 1; margin-right: 10dp; }
|
||||||
@@ -244,6 +246,14 @@
|
|||||||
<span class="v">{{ cl_qty_text }}</span>
|
<span class="v">{{ cl_qty_text }}</span>
|
||||||
<div class="btn" data-action="cl-qty-max">Max</div>
|
<div class="btn" data-action="cl-qty-max">Max</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="label" style="margin-top: 8dp;">Wishlist - what the clan needs</div>
|
||||||
|
<div class="table cl-items" style="max-height: 120dp;">
|
||||||
|
<div class="body">
|
||||||
|
<div class="empty" data-if="cl_wishes.size == 0">No wishes. Pick an item, set the amount and add it.</div>
|
||||||
|
<div class="row" data-for="w : cl_wishes"><span class="c1" data-class-done="w.on">{{ w.a }}</span><span class="c2">{{ w.b }}</span><span class="btn small" data-if="w.selected" data-action="cl-wish-del" data-attr-data-arg="w.key">×</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="namefield"><span class="label">Need</span><input class="text" type="text" data-value="cl_wish_n" maxlength="8" style="flex: 0 0 70dp;"/><input class="text" type="text" data-value="cl_wish_note" maxlength="100" style="margin-left: 6dp;"/><div class="btn" data-action="cl-wish" style="margin-left: 6dp;">Wish<div class="tip">Adds the picked item (clan depot or your hold) to the wishlist with the amount and a note (e.g. "for the station in Omega-3").</div></div></div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<div class="btn primary" data-if="cl_docked" data-action="cl-store">Store in the clan depot<div class="tip">Moves the amount of the cargo item you picked into the clan depot - at any base.</div></div>
|
<div class="btn primary" data-if="cl_docked" data-action="cl-store">Store in the clan depot<div class="tip">Moves the amount of the cargo item you picked into the clan depot - at any base.</div></div>
|
||||||
<div class="btn primary" data-if="cl_docked && cl_may_depotout" data-action="cl-take">Take to the hold<div class="tip">Moves the amount of the depot item you picked into your hold (your rank's daily limit).</div></div>
|
<div class="btn primary" data-if="cl_docked && cl_may_depotout" data-action="cl-take">Take to the hold<div class="tip">Moves the amount of the depot item you picked into your hold (your rank's daily limit).</div></div>
|
||||||
|
|||||||
+14
-1
@@ -3,7 +3,8 @@
|
|||||||
<title>Waypoint Bot</title>
|
<title>Waypoint Bot</title>
|
||||||
<link type="text/rcss" href="rem.rcss"/>
|
<link type="text/rcss" href="rem.rcss"/>
|
||||||
<style>
|
<style>
|
||||||
body.window.small { top: 6%; height: 720dp; width: 620dp; }
|
body.window.small { top: 4%; height: 820dp; width: 620dp; }
|
||||||
|
.content { overflow-y: auto; }
|
||||||
.lead { line-height: 1.5; font-size: 14dp; padding: 10dp 12dp; margin-bottom: 10dp; background-color: #5cc8f008; }
|
.lead { line-height: 1.5; font-size: 14dp; padding: 10dp 12dp; margin-bottom: 10dp; background-color: #5cc8f008; }
|
||||||
.label { margin: 12dp 0 4dp 0; font-family: "Saira SemiCondensed"; letter-spacing: 1.1dp; text-transform: uppercase; color: #8197ad; }
|
.label { margin: 12dp 0 4dp 0; font-family: "Saira SemiCondensed"; letter-spacing: 1.1dp; text-transform: uppercase; color: #8197ad; }
|
||||||
.line { display: flex; flex-direction: row; align-items: center; margin-top: 6dp; }
|
.line { display: flex; flex-direction: row; align-items: center; margin-top: 6dp; }
|
||||||
@@ -42,6 +43,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="event">{{ event }}</div>
|
<div class="event">{{ event }}</div>
|
||||||
|
|
||||||
|
<div class="label">Saved routes</div>
|
||||||
|
<div class="line" data-for="r : routes">
|
||||||
|
<span class="k" style="width: 260dp;">{{ r.name }}</span>
|
||||||
|
<div class="btn small" data-action="route-load" data-attr-data-arg="r.key">Load<div class="tip">Your waypoints become this route (the old ones go).</div></div>
|
||||||
|
<div class="btn small primary" data-action="route-go" data-attr-data-arg="r.key">Fly<div class="tip">Loads the route and starts the bot.</div></div>
|
||||||
|
<div class="btn small" data-action="route-del" data-attr-data-arg="r.key">×</div>
|
||||||
|
</div>
|
||||||
|
<div class="line">
|
||||||
|
<input class="text" type="text" data-value="route_name" maxlength="40" style="width: 260dp;"/>
|
||||||
|
<div class="btn small" data-action="route-save">Save the waypoints<div class="tip">The waypoints you set now (nav map) under this name - up to ten routes.</div></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="label">Route</div>
|
<div class="label">Route</div>
|
||||||
<div class="line">
|
<div class="line">
|
||||||
<span class="k">Fly through waypoints</span>
|
<span class="k">Fly through waypoints</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user