REM-Client fd520380: waypoint bot window /wpbot with settings (arrival dock, disrupted tradelane, under fire, notes), keys USER_REM_WAYPOINT_BOT_PAUSE/_SKIP/_SETUP (keymap.ini, keylist.ini, Infocards.lua 524538-524543); notification cards as high as their text

This commit is contained in:
2026-11-10 19:21:41 +01:00
parent 2acc2385bc
commit 4c33c79a63
8 changed files with 135 additions and 5 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
REM-Client test build (64-bit)
date: 2026-11-10 17:07
commit: 168d8297 (main)
subject: Rapidfire keys: USER_REM_RAPIDFIRE (the macro on / off) and USER_REM_RAPIDFIRE_SETUP (its window)
date: 2026-11-10 19:21
commit: fd520380 (main)
subject: Waypoint bot window, settings, keys and notes; notification cards no longer stretch
tree: clean
build: OK
+9
View File
@@ -328,6 +328,15 @@ id = USER_REM_ACTIVATE_PROBE
[key]
id = USER_REM_WAYPOINT_BOT
[key]
id = USER_REM_WAYPOINT_BOT_PAUSE
[key]
id = USER_REM_WAYPOINT_BOT_SKIP
[key]
id = USER_REM_WAYPOINT_BOT_SETUP
[key]
id = USER_REM_SECTOR_SCANNER
+22
View File
@@ -1108,6 +1108,25 @@ ids_name = 524536
ids_info = 524537
state = keydown
; REM: the waypoint bot (REM-Client rem_waypoint_bot.h): pause / go on, skip a waypoint, its settings window
[KeyCmd]
nickname = USER_REM_WAYPOINT_BOT_PAUSE
ids_name = 524538
ids_info = 524539
state = keydown
[KeyCmd]
nickname = USER_REM_WAYPOINT_BOT_SKIP
ids_name = 524540
ids_info = 524541
state = keydown
[KeyCmd]
nickname = USER_REM_WAYPOINT_BOT_SETUP
ids_name = 524542
ids_info = 524543
state = keydown
[KeyMap]
nickname = IDR_ALWAYS_PRESENT
key = USER_REM_WAYPOINTS
@@ -1117,6 +1136,7 @@ key = USER_REM_CONTRACTS
key = USER_REM_PLAYER
key = USER_REM_HUDLESS
key = USER_REM_RAPIDFIRE_SETUP
key = USER_REM_WAYPOINT_BOT_SETUP
key = USER_YES
key = USER_NO
key = USER_CANCEL
@@ -1156,6 +1176,8 @@ key = USER_REM_SECTOR_SCANNER
key = USER_CLOAK
key = USER_REM_JUMPDRIVE
key = USER_REM_RAPIDFIRE
key = USER_REM_WAYPOINT_BOT_PAUSE
key = USER_REM_WAYPOINT_BOT_SKIP
key = USER_REM_WAYPOINT_BOT
key = USER_REM_SENSOR_PROBE
key = USER_REM_ACTIVATE_PROBE
Binary file not shown.
+6
View File
@@ -51,6 +51,12 @@ rem.AddInfoCard(524534, "RAPIDFIRE")
rem.AddInfoCard(524535, "Starts / stops the rapidfire macro: every weapon switched on fires as soon as its cooldown allows.")
rem.AddInfoCard(524536, "RAPIDFIRE SETTINGS")
rem.AddInfoCard(524537, "Opens / closes the rapidfire window: weapons, firing order, cooldowns, key.")
rem.AddInfoCard(524538, "WAYPOINT BOT PAUSE")
rem.AddInfoCard(524539, "Pauses the waypoint bot (the ship is yours) or lets it fly on.")
rem.AddInfoCard(524540, "WAYPOINT BOT SKIP")
rem.AddInfoCard(524541, "Drops the next waypoint; the bot flies to the one after it.")
rem.AddInfoCard(524542, "WAYPOINT BOT SETTINGS")
rem.AddInfoCard(524543, "Opens / closes the waypoint bot window: state, arrival, tradelanes, fire, notes.")
-- RACE INFOCARDS
rem.AddInfoCard(9001, "1")
+3 -2
View File
@@ -4,8 +4,9 @@
<link type="text/rcss" href="rem.rcss"/>
<style>
/* cards at the right edge, above the HUD's right panel; the empty strip is the game's */
body.notify { position: absolute; right: 16dp; top: 120dp; width: 340dp; height: 520dp; background-color: transparent; display: flex; flex-direction: column; }
.card { margin-bottom: 8dp; padding: 9dp 12dp 9dp 14dp; decorator: ninepatch(fw, fw-i); }
/* a plain block, as high as its cards: as a flex column of a fixed height the cards stretched to fill it */
body.notify { position: absolute; right: 16dp; top: 120dp; width: 340dp; height: auto; background-color: transparent; display: block; }
.card { display: block; height: auto; margin-bottom: 8dp; padding: 9dp 12dp 9dp 14dp; decorator: ninepatch(fw, fw-i); }
.card:hover { background-color: #0d1622f5; }
.card .t { font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 16dp; letter-spacing: 0.6dp; }
.card .x { float: right; color: #8197ad; font-size: 13dp; }
+1
View File
@@ -42,6 +42,7 @@
<div class="btn primary" data-action="share">{{ sharing ? 'Stop sharing' : 'Share mine' }}<div class="tip">Your waypoints go to your group while sharing is on.</div></div>
<div class="btn" data-action="load">Take over<div class="tip">Takes the picked member's waypoints over once.</div></div>
<div class="btn" data-action="follow">{{ following == '' ? 'Follow' : 'Stop following' }}<div class="tip">Keeps taking the picked member's waypoints over every 2 seconds.</div></div>
<div class="btn" data-action="wpbot">Waypoint bot<div class="tip">Flies your route: state, arrival, tradelanes, fire, notes.</div></div>
</div>
</div>
</div>
+91
View File
@@ -0,0 +1,91 @@
<rml>
<head>
<title>Waypoint Bot</title>
<link type="text/rcss" href="rem.rcss"/>
<style>
body.window.small { top: 6%; height: 720dp; width: 620dp; }
.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; }
.line { display: flex; flex-direction: row; align-items: center; margin-top: 6dp; }
.line .k { width: 170dp; color: #8197ad; }
.line input.text { width: 60dp; margin-right: 8dp; }
.state { padding: 4dp 12dp; margin-right: 10dp; border: 1dp #24405c; color: #8197ad; }
.state.on { color: #6fd08c; border-color: #6fd08c; }
.state.paused { color: #f2b13c; border-color: #f2b13c; }
.facts { display: flex; flex-direction: row; margin-top: 10dp; padding: 8dp 12dp; background-color: #5cc8f008; }
.facts div { flex: 1; }
.facts .v { font-family: "Saira SemiCondensed"; font-size: 20dp; color: #dbe6f0; }
.facts .n { font-size: 12dp; color: #8197ad; text-transform: uppercase; letter-spacing: 1dp; }
.event { margin-top: 8dp; color: #b9cbe0; font-size: 14dp; min-height: 18dp; }
.btn.small { padding: 2dp 8dp; margin-left: 3dp; }
.hint { margin-top: 8dp; color: #8197ad; font-size: 13dp; line-height: 1.4; }
</style>
</head>
<body class="window small" data-model="wpbot">
<div class="win-head">
<span class="title">WAYPOINT BOT</span><span class="sl">\\\</span>
</div>
<div class="win-main">
<div class="content">
<div class="lead">Flies your waypoints one after the other - tradelanes, gates and jump holes on the way - and docks at the end if you like.</div>
<div class="line">
<span class="state" data-class-on="active &amp;&amp; !paused" data-class-paused="paused">{{ state }}</span>
<div class="btn primary" data-action="toggle">{{ active ? 'Stop' : 'Start' }}</div>
<div class="btn small" data-if="active" data-action="pause">{{ paused ? 'Go on' : 'Pause' }}</div>
<div class="btn small" data-action="skip">Skip waypoint</div>
</div>
<div class="facts">
<div><div class="v">{{ left }}</div><div class="n">waypoints left</div></div>
<div><div class="v">{{ reached }}</div><div class="n">reached</div></div>
<div><div class="v">{{ dist }}</div><div class="n">to the next</div></div>
<div><div class="v">{{ speed }}</div><div class="n">speed</div></div>
</div>
<div class="event">{{ event }}</div>
<div class="label">Route</div>
<div class="line">
<span class="k">Fly through waypoints</span>
<div class="btn small" data-class-primary="flythrough" data-action="flythrough">{{ flythrough ? 'On' : 'Off' }}<span class="tip">On: free-space waypoints are passed without braking, the next one is taken at once.</span></div>
</div>
<div class="line">
<span class="k">At the destination</span>
<div class="btn small" data-class-primary="arrival == 0" data-action="arrival" data-arg="0">Stop</div>
<div class="btn small" data-class-primary="arrival == 1" data-action="arrival" data-arg="1">Dock<span class="tip">A waypoint on a base docks there; a waypoint in free space docks at the nearest base within the range.</span></div>
<span class="hint" style="margin: 0 0 0 12dp;">within</span><input class="text" type="text" data-value="dock_km" maxlength="2" style="margin-left: 6dp;"/><span class="hint" style="margin: 0;">km</span>
</div>
<div class="label">Tradelane disrupted</div>
<div class="line">
<div class="btn small" data-class-primary="lane == 0" data-action="lane" data-arg="0">Try again<span class="tip">Waits, then flies on - three times, then it pauses.</span></div>
<div class="btn small" data-class-primary="lane == 1" data-action="lane" data-arg="1">Pause</div>
<div class="btn small" data-class-primary="lane == 2" data-action="lane" data-arg="2">Stop</div>
<span class="hint" style="margin: 0 0 0 12dp;">wait</span><input class="text" type="text" data-value="lane_wait" maxlength="2" style="margin-left: 6dp;"/><span class="hint" style="margin: 0;">s</span>
</div>
<div class="label">Under fire</div>
<div class="line">
<div class="btn small" data-class-primary="fire == 0" data-action="fire" data-arg="0">Fly on<span class="tip">Keeps flying, with a note.</span></div>
<div class="btn small" data-class-primary="fire == 1" data-action="fire" data-arg="1">Pause<span class="tip">The autopilot stops and the ship is yours; it flies on after the quiet time without a hit (0: only by hand).</span></div>
<div class="btn small" data-class-primary="fire == 2" data-action="fire" data-arg="2">Stop</div>
<span class="hint" style="margin: 0 0 0 12dp;">quiet</span><input class="text" type="text" data-value="fire_resume" maxlength="3" style="margin-left: 6dp;"/><span class="hint" style="margin: 0;">s</span>
</div>
<div class="label">Notes</div>
<div class="line">
<span class="k">Every waypoint reached</span>
<div class="btn small" data-class-primary="note_wp" data-action="note_wp">{{ note_wp ? 'On' : 'Off' }}</div>
</div>
<div class="line">
<span class="k">Also in the chat</span>
<div class="btn small" data-class-primary="note_chat" data-action="note_chat">{{ note_chat ? 'On' : 'Off' }}</div>
</div>
<div class="hint">Keys (Options, Controls, REMNANT): Waypoint bot, pause, skip waypoint, this window. F2 on a route starts it too.</div>
<div class="hint" data-if="msg != ''" style="color: #f2b13c;">{{ msg }}</div>
</div>
</div>
<div class="win-foot">
<div class="btn" data-action="close">Close</div>
<div class="btn primary" data-action="save">Save times</div>
</div>
</body>
</rml>