REM-Client 92ab2713: RTS build hologram, supply jobs (buy up to / sell down to) in the pilots' Haul page, clipped fading windows

This commit is contained in:
2026-11-09 16:57:18 +01:00
parent 7b95803f7f
commit 336f781a2c
29 changed files with 38 additions and 5 deletions
+33
View File
@@ -883,7 +883,39 @@
<div class="actions" style="margin: 0 0 8dp 0;">
<div class="btn" data-class-primary="haul_mode == 1" data-action="haul-mode" data-arg="1">Deliver from home<div class="tip">From your depot at the pilot's home base to your depot at the base picked below.</div></div>
<div class="btn" data-class-primary="haul_mode == 2" data-action="haul-mode" data-arg="2">Pick up to home<div class="tip">From your depot at the base picked below into your depot at the pilot's home base.</div></div>
<div class="btn" data-class-primary="haul_mode == 3" data-action="haul-mode" data-arg="3">Keep depot stocked<div class="tip">You set stock targets for your depot at the pilot's home base; it buys what is furthest below its target where it is cheapest in its reach (your bank pays) and brings it home.</div></div>
</div>
<div data-if="haul_mode == 3">
<div class="table" style="height: 130dp; margin-bottom: 8dp;">
<div class="head"><span class="c1">Good (home depot)</span><span class="c2">Rule</span><span class="c3">In depot</span></div>
<div class="body">
<div class="empty" data-if="supply_rows.size == 0">{{ supply_note }}</div>
<div class="row" data-for="r : supply_rows" data-class-selected="r.selected" data-class-current="r.current" data-action="supply-pick" data-attr-data-arg="r.key">
<span class="c1">{{ r.a }}</span><span class="c2">{{ r.b }}</span><span class="c3">{{ r.c }}</span>
</div>
</div>
</div>
<div class="table" style="height: 110dp; margin-bottom: 8dp;">
<div class="head"><span class="c1">Add a good</span><span class="c3">In depot</span></div>
<div class="body">
<div class="row" data-for="r : supply_goods" data-class-selected="r.selected" data-action="supply-pick" data-attr-data-arg="r.key">
<span class="c1">{{ r.a }}</span><span class="c3">{{ r.c }}</span>
</div>
</div>
</div>
<div class="actions" style="margin: 0 0 6dp 0;">
<div class="btn" data-class-primary="!supply_sell" data-action="supply-dir" data-arg="buy">Buy up to<div class="tip">The pilot buys the good (cheapest in its reach, NPC dealers and the galactic market) until the depot holds this many.</div></div>
<div class="btn" data-class-primary="supply_sell" data-action="supply-dir" data-arg="sell">Sell down to<div class="tip">The pilot sells what the depot holds above this many where it pays best in its reach (NPC dealers and the galactic market's buy orders); the credits go to your bank.</div></div>
</div>
<div class="namefield"><span class="label">{{ supply_sell ? 'Keep' : 'Target' }}</span><input class="text" type="text" data-value="supply_amount" maxlength="7"/></div>
<div class="actions">
<div class="btn" data-action="supply-set">Set</div>
<div class="btn" data-action="supply-remove">Remove</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>
</div>
<div data-if="haul_mode != 3">
<div class="hint">{{ haul_reach }}</div>
<div class="table" style="height: 130dp; margin-bottom: 8dp;">
<div class="head"><span class="c1">Base</span><span class="c2">System</span><span class="c3">Jumps</span></div>
@@ -910,6 +942,7 @@
<div class="btn primary" data-action="haul-set">Start this job</div>
<div class="btn" data-if="haul_job" data-action="haul-end">End job<div class="tip">The pilot trades on its own again (after it delivered what it carries).</div></div>
</div>
</div>
</div>
<div class="pane" data-if="has_pick &amp;&amp; sub == 3">
+2 -2
View File
@@ -41,8 +41,8 @@ body.window
}
/* a window opens with a short fade and lift (the host sets .rem-in for one frame) */
/* the transform only while the window moves in (.rem-anim): a transformed window's scrolled
content is not clipped by the renderer (no clip mask), so a resting window has none */
/* the transform only while the window moves in (.rem-anim); a transformed window's scrolled content is
clipped through the clip mask's rectangle (rem_ui_render.cpp RenderToClipMask) */
body.window { opacity: 1; transition: opacity transform 0.22s cubic-out; }
body.window.rem-anim { transform: translateY(0dp) scale(1); }
body.window.rem-in { opacity: 0; transform: translateY(14dp) scale(0.985); }