New REM client: REM-Client 158566c, 64-bit (market window after EVE Online with price chart and order book; trade tax and courier fee in the dealers; equipment dealer: autobuy panel, "loot only", "Sell all loot" with a keep list, mounting only onto free hardpoints; [AFK] after 5 minutes idle or tabbed out; option bars clickable and draggable; player cloak; waypoint bot on F2; nav map in the original's look with gliding zoom; radar after Jeider's super radar; admin window; RemGfx R27-R32: nebula swathes, hull finish, sun corona, glass, planets, soft shadows; smoother ship paths in multiplayer)
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
-2
@@ -89,6 +89,10 @@ Overlay = 1
|
||||
; R4 sun shadows in space and space cutscenes (cascaded shadow maps): ShadowMapSize is the atlas
|
||||
; of the four cascades (2048 / 4096 / 8192), ShadowDistance how far from the camera (metres).
|
||||
Shadows = 1
|
||||
; R32 soft shadow-map shadows (PCSS): the sun's angular size in degrees -- sharp where a shadow touches
|
||||
; its caster, softer farther away (0 = the fixed 3x3 filter). The ray-traced shadows (RtShadows) are
|
||||
; not affected.
|
||||
ShadowSoftness = 1.5
|
||||
ShadowMapSize = 4096
|
||||
ShadowDistance = 3000
|
||||
; PlanetShadows = 1: planets also receive the shadows of ships, docking rings and stations
|
||||
@@ -102,11 +106,13 @@ ShadowCullMargin = 400
|
||||
DynamicLights = 1
|
||||
; R17 weapon lights: laser beams light their surroundings along their length, muzzle flashes,
|
||||
; projectiles, impacts and explosions as points in the colour of their particles (needs
|
||||
; DynamicLights = 1). WeaponGlow draws weapon effects brighter for the bloom (1 = original).
|
||||
; DynamicLights = 1). WeaponGlow draws weapon effects brighter for the bloom (1 = original, below 1
|
||||
; dimmer); BeamGlow the lasers' glowing volumes (R24, 0 = off).
|
||||
WeaponLights = 1
|
||||
WeaponLightIntensity = 1.0
|
||||
WeaponLightRange = 1.0
|
||||
WeaponGlow = 1.6
|
||||
WeaponGlow = 1.0
|
||||
BeamGlow = 0.4
|
||||
; R2 debug view (diagnosis from screenshots): 0 off, 1 normals, 2 depth (1 m black .. 130 km
|
||||
; white), 3 motion vectors (grey = still, magenta = unknown), 4 material class (glass, nomad,
|
||||
; planet water, engine glow ... one colour each), 5 game object (one colour per object), 6 phase
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,62 @@
|
||||
<rml>
|
||||
<head>
|
||||
<title>Admin</title>
|
||||
<link type="text/rcss" href="rem.rcss"/>
|
||||
<style>
|
||||
.split { flex: 1; display: flex; flex-direction: row; min-height: 0; }
|
||||
.side { flex: 0 0 38%; display: flex; flex-direction: column; min-height: 0; margin-right: 18dp; }
|
||||
.list { flex: 1 1 0; min-height: 0; overflow-y: auto; border: 1dp #24405c; border-radius: 3dp; }
|
||||
.row { padding: 6dp 10dp; border-bottom: 1dp #ffffff08; border-left: 2dp #00000000; font-family: "IBM Plex Mono"; font-size: 14dp; }
|
||||
.row:hover { background-color: #122033; }
|
||||
.row.selected { background-color: #f2b13c24; border-left-color: #f2b13c; }
|
||||
.detail { flex: 1; display: flex; flex-direction: column; min-width: 0; }
|
||||
.help { padding: 12dp 14dp; border: 1dp #24405c; border-radius: 3dp; background-color: #0d1622; line-height: 1.5; margin-bottom: 14dp; }
|
||||
.cmd { font-family: "IBM Plex Mono"; font-size: 18dp; color: #f2b13c; margin-bottom: 8dp; }
|
||||
.runline { display: flex; flex-direction: row; align-items: center; }
|
||||
.runline input { flex: 1; margin-right: 10dp; }
|
||||
.search { margin-bottom: 8dp; }
|
||||
.recent { margin-top: 14dp; }
|
||||
.recent .row { font-size: 13dp; color: #8197ad; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="window medium" data-model="admin">
|
||||
<div class="win-head">
|
||||
<img class="head-ico" src="3db:INTERFACE/NEURONET/ICONS/rem_player.3db"/>
|
||||
<span class="title">ADMIN</span>
|
||||
<span class="spacer"></span>
|
||||
<span class="chip">{{ commands.size }} commands</span>
|
||||
<span class="close" data-action="close">×</span>
|
||||
</div>
|
||||
<div class="win-main">
|
||||
<div class="content">
|
||||
<div class="split">
|
||||
<div class="side">
|
||||
<input class="text search" type="text" data-value="filter" maxlength="40"/>
|
||||
<div class="list">
|
||||
<div class="hint" style="padding: 10dp;" data-if="commands.size == 0">{{ received ? 'No command matches.' : 'Asking the server...' }}</div>
|
||||
<div class="row" data-for="c : commands" data-class-selected="c.selected" data-action="pick" data-attr-data-arg="c.name">{{ c.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="help">
|
||||
<div class="cmd">{{ has_pick ? pick_name : 'Pick a command' }}</div>
|
||||
<div>{{ has_pick ? pick_help : 'Every admin command of the server, run from here - its answer comes in the chat.' }}</div>
|
||||
</div>
|
||||
<div class="label">Arguments</div>
|
||||
<div class="runline">
|
||||
<input class="text" type="text" data-value="args" maxlength="200"/>
|
||||
<div class="btn primary" data-class-disabled="!has_pick" data-action="run">Run<div class="tip">Runs the command on the server as you typed it; the answer comes as a system message in the chat.</div></div>
|
||||
</div>
|
||||
<div class="recent" data-if="recent.size > 0">
|
||||
<div class="label">Run here</div>
|
||||
<div class="row" data-for="r : recent" data-action="again" data-attr-data-arg="r">{{ r }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="win-foot">
|
||||
<span class="key">Esc</span><span class="hint">close</span>
|
||||
</div>
|
||||
</body>
|
||||
</rml>
|
||||
+3
-3
@@ -503,11 +503,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="table" data-if="courier_has_depot" style="height: 150dp;">
|
||||
<div class="head"><span class="c1">To your depot on</span></div>
|
||||
<div class="head"><span class="c1">To your depot on</span><span class="c2">Fee</span></div>
|
||||
<div class="body">
|
||||
<div class="empty" data-if="courier_targets.size == 0">You have no other depot.</div>
|
||||
<div class="row" data-for="r : courier_targets" data-class-selected="r.selected" data-action="pick-courier-target" data-attr-data-arg="r.key">
|
||||
<span class="c1">{{ r.a }}</span>
|
||||
<span class="c1">{{ r.a }}</span><span class="c2">{{ r.b }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -519,7 +519,7 @@
|
||||
</div>
|
||||
<div class="hint" data-if="courier_msg != ''">{{ courier_msg }}</div>
|
||||
<div class="actions" data-if="courier_has_depot">
|
||||
<div class="btn primary" data-class-disabled="!can_send" data-action="send-couriers">Send couriers<div class="tip">The cargo leaves your depot now; couriers fly it to the depot you picked (several when it does not fit one hold).</div></div>
|
||||
<div class="btn primary" data-class-disabled="!can_send" data-action="send-couriers">Send couriers<div class="tip">The cargo leaves your depot now; couriers fly it to the depot you picked (several when it does not fit one hold). The fee is paid from your credits.</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+15
-12
@@ -31,13 +31,13 @@
|
||||
.chips { position: absolute; left: 0; top: 0; width: 242dp; height: 11dp; display: flex; flex-direction: row; }
|
||||
.sg { flex: 1; height: 11dp; margin-right: 2dp; }
|
||||
.sg:last-child { margin-right: 0; }
|
||||
.fillbox { position: absolute; left: 0; top: 0; height: 11dp; overflow: hidden; }
|
||||
.power .chips.dim .sg { background-color: #a7a15e33; }
|
||||
.power .fillbox .sg { background-color: #c9c272; }
|
||||
.shield .chips.dim .sg { background-color: #3e3db544; }
|
||||
.shield .fillbox .sg { background-color: #5856dc; }
|
||||
.hull .chips.dim .sg { background-color: #782a3355; }
|
||||
.hull .fillbox .sg { background-color: #b53844; }
|
||||
/* each segment lit by the value (no clipped fill row: the HUD's scaled parts are not clipped) */
|
||||
.power .sg { background-color: #a7a15e33; }
|
||||
.power .sg.lit { background-color: #c9c272; }
|
||||
.shield .sg { background-color: #3e3db544; }
|
||||
.shield .sg.lit { background-color: #5856dc; }
|
||||
.hull .sg { background-color: #782a3355; }
|
||||
.hull .sg.lit { background-color: #b53844; }
|
||||
|
||||
/* --- bottom left: target / contacts --------------------------------------------------- */
|
||||
.lhead { left: 46dp; bottom: 289dp; width: 291dp; height: 52dp; display: flex; flex-direction: row; align-items: center; padding: 0 6dp 0 10dp; }
|
||||
@@ -70,6 +70,8 @@
|
||||
.w.on { color: #7cf27c; }
|
||||
.w .n { flex: 1; white-space: nowrap; overflow: hidden; }
|
||||
.w .a { margin-left: 8dp; }
|
||||
.w.cloak { border-top: 1dp #24405c; margin-top: 4dp; color: #8fb8d8; }
|
||||
.w.cloak.on { color: #b98cf2; }
|
||||
.special { color: #f2d23c; font-size: 18dp; margin-top: 6dp; }
|
||||
/* the HUD editor: four layers over the whole screen, each moved / sized as one */
|
||||
.grp { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
|
||||
@@ -110,9 +112,9 @@
|
||||
<div data-if="core || editing">
|
||||
<div class="fp inner thrust" data-class-low="thrust_low">{{ thrust }}</div>
|
||||
<div class="fp bars">
|
||||
<div class="bar power"><div class="chips dim"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div><div class="fillbox" data-style-width="power"><div class="chips"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div></div></div>
|
||||
<div class="bar shield"><div class="chips dim"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div><div class="fillbox" data-style-width="shield"><div class="chips"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div></div></div>
|
||||
<div class="bar hull"><div class="chips dim"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div><div class="fillbox" data-style-width="hull"><div class="chips"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div></div></div>
|
||||
<div class="bar power"><div class="chips"><div class="sg" data-class-lit="power_n > 0"></div><div class="sg" data-class-lit="power_n > 1"></div><div class="sg" data-class-lit="power_n > 2"></div><div class="sg" data-class-lit="power_n > 3"></div><div class="sg" data-class-lit="power_n > 4"></div><div class="sg" data-class-lit="power_n > 5"></div><div class="sg" data-class-lit="power_n > 6"></div><div class="sg" data-class-lit="power_n > 7"></div><div class="sg" data-class-lit="power_n > 8"></div><div class="sg" data-class-lit="power_n > 9"></div><div class="sg" data-class-lit="power_n > 10"></div><div class="sg" data-class-lit="power_n > 11"></div><div class="sg" data-class-lit="power_n > 12"></div><div class="sg" data-class-lit="power_n > 13"></div><div class="sg" data-class-lit="power_n > 14"></div><div class="sg" data-class-lit="power_n > 15"></div></div></div>
|
||||
<div class="bar shield"><div class="chips"><div class="sg" data-class-lit="shield_n > 0"></div><div class="sg" data-class-lit="shield_n > 1"></div><div class="sg" data-class-lit="shield_n > 2"></div><div class="sg" data-class-lit="shield_n > 3"></div><div class="sg" data-class-lit="shield_n > 4"></div><div class="sg" data-class-lit="shield_n > 5"></div><div class="sg" data-class-lit="shield_n > 6"></div><div class="sg" data-class-lit="shield_n > 7"></div><div class="sg" data-class-lit="shield_n > 8"></div><div class="sg" data-class-lit="shield_n > 9"></div><div class="sg" data-class-lit="shield_n > 10"></div><div class="sg" data-class-lit="shield_n > 11"></div><div class="sg" data-class-lit="shield_n > 12"></div><div class="sg" data-class-lit="shield_n > 13"></div><div class="sg" data-class-lit="shield_n > 14"></div><div class="sg" data-class-lit="shield_n > 15"></div></div></div>
|
||||
<div class="bar hull"><div class="chips"><div class="sg" data-class-lit="hull_n > 0"></div><div class="sg" data-class-lit="hull_n > 1"></div><div class="sg" data-class-lit="hull_n > 2"></div><div class="sg" data-class-lit="hull_n > 3"></div><div class="sg" data-class-lit="hull_n > 4"></div><div class="sg" data-class-lit="hull_n > 5"></div><div class="sg" data-class-lit="hull_n > 6"></div><div class="sg" data-class-lit="hull_n > 7"></div><div class="sg" data-class-lit="hull_n > 8"></div><div class="sg" data-class-lit="hull_n > 9"></div><div class="sg" data-class-lit="hull_n > 10"></div><div class="sg" data-class-lit="hull_n > 11"></div><div class="sg" data-class-lit="hull_n > 12"></div><div class="sg" data-class-lit="hull_n > 13"></div><div class="sg" data-class-lit="hull_n > 14"></div><div class="sg" data-class-lit="hull_n > 15"></div></div></div>
|
||||
</div>
|
||||
<div class="fp inner speed">{{ speed }}</div>
|
||||
</div>
|
||||
@@ -132,8 +134,8 @@
|
||||
<div data-if="has_target">
|
||||
<div class="tname">{{ target_name }}</div>
|
||||
<div class="tsub">{{ target_sub }} {{ target_rank }} {{ target_range }}</div>
|
||||
<div class="tbar hull"><span class="l">Hull</span><div class="bar"><div class="chips dim"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div><div class="fillbox" data-style-width="target_hull"><div class="chips"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div></div></div></div>
|
||||
<div class="tbar shield" data-if="target_has_shield"><span class="l">Shield</span><div class="bar"><div class="chips dim"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div><div class="fillbox" data-style-width="target_shield"><div class="chips"><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div><div class="sg"></div></div></div></div></div>
|
||||
<div class="tbar hull"><span class="l">Hull</span><div class="bar"><div class="chips"><div class="sg" data-class-lit="target_hull_n > 0"></div><div class="sg" data-class-lit="target_hull_n > 1"></div><div class="sg" data-class-lit="target_hull_n > 2"></div><div class="sg" data-class-lit="target_hull_n > 3"></div><div class="sg" data-class-lit="target_hull_n > 4"></div><div class="sg" data-class-lit="target_hull_n > 5"></div><div class="sg" data-class-lit="target_hull_n > 6"></div><div class="sg" data-class-lit="target_hull_n > 7"></div><div class="sg" data-class-lit="target_hull_n > 8"></div><div class="sg" data-class-lit="target_hull_n > 9"></div><div class="sg" data-class-lit="target_hull_n > 10"></div><div class="sg" data-class-lit="target_hull_n > 11"></div><div class="sg" data-class-lit="target_hull_n > 12"></div><div class="sg" data-class-lit="target_hull_n > 13"></div><div class="sg" data-class-lit="target_hull_n > 14"></div><div class="sg" data-class-lit="target_hull_n > 15"></div></div></div></div>
|
||||
<div class="tbar shield" data-if="target_has_shield"><span class="l">Shield</span><div class="bar"><div class="chips"><div class="sg" data-class-lit="target_shield_n > 0"></div><div class="sg" data-class-lit="target_shield_n > 1"></div><div class="sg" data-class-lit="target_shield_n > 2"></div><div class="sg" data-class-lit="target_shield_n > 3"></div><div class="sg" data-class-lit="target_shield_n > 4"></div><div class="sg" data-class-lit="target_shield_n > 5"></div><div class="sg" data-class-lit="target_shield_n > 6"></div><div class="sg" data-class-lit="target_shield_n > 7"></div><div class="sg" data-class-lit="target_shield_n > 8"></div><div class="sg" data-class-lit="target_shield_n > 9"></div><div class="sg" data-class-lit="target_shield_n > 10"></div><div class="sg" data-class-lit="target_shield_n > 11"></div><div class="sg" data-class-lit="target_shield_n > 12"></div><div class="sg" data-class-lit="target_shield_n > 13"></div><div class="sg" data-class-lit="target_shield_n > 14"></div><div class="sg" data-class-lit="target_shield_n > 15"></div></div></div></div>
|
||||
<div class="tbtns">
|
||||
<div class="ib" data-for="b : target_buttons" data-action="tbutton" data-attr-data-arg="b.key"><img class="ico" data-attr-src="b.icon"/></div>
|
||||
</div>
|
||||
@@ -171,6 +173,7 @@
|
||||
<div class="w" data-for="w : weapons" data-class-on="w.active" data-action="weapon" data-attr-data-arg="w.key">
|
||||
<span class="n">{{ w.key + 1 }} {{ w.name }}</span><span class="a">{{ w.ammo }}</span>
|
||||
</div>
|
||||
<div class="w cloak" data-if="has_cloak" data-class-on="cloak_on" data-action="cloak"><span class="n">{{ cloak_name }}</span><span class="a">{{ cloak_on ? 'ON' : 'OFF' }}</span></div>
|
||||
<div class="special" data-if="special != ''">{{ special }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<title>Loading</title>
|
||||
<link type="text/rcss" href="rem.rcss"/>
|
||||
<style>
|
||||
body.loaddoc { position: absolute; left: 0; top: 0; width: 0; height: 0; display: block; background-color: transparent; }
|
||||
body.loaddoc { position: absolute; left: 0; top: 0; right: 0; bottom: 0; display: block; background-color: transparent; pointer-events: none; }
|
||||
.load { position: absolute; left: 50%; bottom: 60dp; transform: translateX(-50%); width: 420dp; padding: 10dp 16dp 12dp 16dp; background-color: #070b12d9; border: 2dp #3d6d96; border-top: 2dp #f2b13c; border-radius: 4dp; }
|
||||
.load .t { font-family: "Saira SemiCondensed"; font-weight: 700; font-size: 18dp; letter-spacing: 4dp; color: #dbe6f0; text-align: center; margin-bottom: 8dp; }
|
||||
.load .track { position: relative; height: 4dp; background-color: #24405c; border-radius: 2dp; }
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
<rml>
|
||||
<head>
|
||||
<title>Market</title>
|
||||
<link type="text/rcss" href="rem.rcss"/>
|
||||
<style>
|
||||
.split { flex: 1; display: flex; flex-direction: row; min-height: 0; }
|
||||
.goods { flex: 0 0 31%; display: flex; flex-direction: column; min-height: 0; margin-right: 18dp; }
|
||||
.detail { flex: 1; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow-y: auto; }
|
||||
.list { flex: 1 1 0; min-height: 0; overflow-y: auto; border: 1dp #24405c; border-radius: 3dp; }
|
||||
.g { display: flex; flex-direction: row; align-items: center; padding: 5dp 10dp; border-bottom: 1dp #ffffff08; border-left: 2dp #00000000; font-size: 14dp; }
|
||||
.g:hover { background-color: #122033; }
|
||||
.g.selected { background-color: #f2b13c24; border-left-color: #f2b13c; }
|
||||
.g .n { flex: 1; }
|
||||
.g.quiet .n { color: #8197ad; }
|
||||
.g .v { font-family: "IBM Plex Mono"; width: 62dp; text-align: right; font-size: 13dp; }
|
||||
.g .v.s { color: #f2b13c; }
|
||||
.g .v.b { color: #5fd08a; }
|
||||
.g .v.npc { color: #5cc8f0; }
|
||||
.ghead { display: flex; flex-direction: row; padding: 0 10dp 4dp 12dp; font-size: 12dp; color: #8197ad; }
|
||||
.ghead .n { flex: 1; }
|
||||
.ghead .v { width: 62dp; text-align: right; }
|
||||
.tools { display: flex; flex-direction: row; align-items: center; margin-bottom: 8dp; }
|
||||
.tools input { flex: 1; margin-right: 8dp; }
|
||||
.toggle { font-size: 13dp; color: #8197ad; padding: 4dp 8dp; border: 1dp #24405c; border-radius: 3dp; }
|
||||
.toggle.on { color: #f2b13c; border-color: #f2b13c; }
|
||||
.toggle:hover { color: #5cc8f0; }
|
||||
.ihead { display: flex; flex-direction: row; align-items: flex-end; margin-bottom: 8dp; }
|
||||
.ihead .t { font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 22dp; color: #dbe6f0; flex: 1; }
|
||||
.ihead .npc { font-size: 13dp; color: #5cc8f0; }
|
||||
.chartbar { display: flex; flex-direction: row; align-items: center; margin-bottom: 6dp; }
|
||||
.chartbar .toggle { margin-right: 6dp; }
|
||||
.legend { margin-left: auto; font-size: 12dp; color: #8197ad; }
|
||||
.legend .k { display: inline-block; width: 10dp; height: 10dp; margin: 0 4dp 0 12dp; border-radius: 2dp; }
|
||||
.chart { position: relative; height: 190dp; border: 1dp #24405c; border-radius: 3dp; background-color: #0d1622; margin-left: 76dp; }
|
||||
.chart .grid { position: absolute; left: 0; right: 0; height: 1dp; background-color: #24405c66; }
|
||||
.chart .col { position: absolute; top: 0; bottom: 0; }
|
||||
.chart .col:hover { background-color: #5cc8f014; }
|
||||
.chart .mean { position: absolute; bottom: 0; left: 0; right: 0; background-color: #f2b13c55; border-top: 2dp #f2b13c; border-radius: 2dp 2dp 0 0; }
|
||||
.chart .band { position: absolute; left: 35%; width: 30%; min-height: 2dp; background-color: #dbe6f0cc; border-radius: 1dp; }
|
||||
.chart .npc { position: absolute; left: 20%; width: 60%; height: 3dp; margin-bottom: -1dp; background-color: #5cc8f0; border-radius: 2dp; }
|
||||
.chart .empty { position: absolute; left: 0; right: 0; top: 80dp; text-align: center; color: #8197ad; }
|
||||
.axis { position: relative; height: 0; }
|
||||
.axis .y { position: absolute; left: 0; width: 70dp; text-align: right; font-family: "IBM Plex Mono"; font-size: 11dp; color: #8197ad; }
|
||||
.vol { position: relative; height: 34dp; margin-left: 76dp; margin-top: 3dp; }
|
||||
.vol .vb { position: absolute; bottom: 0; background-color: #3d6d96; border-radius: 2dp 2dp 0 0; }
|
||||
.dates { display: flex; flex-direction: row; margin-left: 76dp; font-family: "IBM Plex Mono"; font-size: 11dp; color: #8197ad; margin-bottom: 12dp; }
|
||||
.dates .r { margin-left: auto; }
|
||||
.books { display: flex; flex-direction: row; min-height: 150dp; }
|
||||
.book { flex: 1; display: flex; flex-direction: column; min-width: 0; }
|
||||
.book.gap { margin-right: 14dp; }
|
||||
.book .table { flex: 1; height: 160dp; }
|
||||
.table .c2 { width: 60dp; text-align: right; font-family: "IBM Plex Mono"; }
|
||||
.table .mine .c1 { color: #5cc8f0; }
|
||||
.panel { margin-top: 12dp; padding: 10dp 12dp; border: 1dp #24405c; border-radius: 3dp; background-color: #122033; }
|
||||
.panel .row2 { display: flex; flex-direction: row; align-items: center; }
|
||||
.panel .label { width: 120dp; }
|
||||
.panel input.text { width: 120dp; margin-right: 10dp; }
|
||||
.panel .sum { font-family: "IBM Plex Mono"; color: #f2b13c; margin: 0 14dp; }
|
||||
.panel .info { font-size: 13dp; color: #8197ad; margin-top: 6dp; }
|
||||
.panel .pick { font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 16dp; color: #dbe6f0; margin-bottom: 6dp; }
|
||||
.status { margin-top: 10dp; padding: 6dp 10dp; border-left: 3dp #5fd08a; background-color: #0d1622; }
|
||||
.status.bad { border-left-color: #ef6a5b; }
|
||||
.mine-split { flex: 1; display: flex; flex-direction: column; min-height: 0; }
|
||||
.mine-split .table { flex: 1; }
|
||||
.mt .c1 { flex: 1; }
|
||||
.mt .cs { width: 70dp; }
|
||||
.mt .cb { width: 24%; }
|
||||
.mt .cn { width: 110dp; text-align: right; font-family: "IBM Plex Mono"; margin-right: 14dp; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="window" data-model="market">
|
||||
<div class="win-head">
|
||||
<img class="head-ico" src="3db:INTERFACE/REM/IMAGES/icon_economy.3db"/>
|
||||
<span class="title">MARKET</span>
|
||||
<span class="loc">{{ here }}</span>
|
||||
<span class="spacer"></span>
|
||||
<span class="chip">{{ fees }}<div class="tip">Broker fee: from your bank when you place an order or give it a new price. Sales tax: from what you get for a sale. Orders end after their days: goods back into the depot, escrow back to the bank.</div></span>
|
||||
<span class="close" data-action="close">×</span>
|
||||
</div>
|
||||
<div class="win-main">
|
||||
<div class="content">
|
||||
<div class="subtabs">
|
||||
<div class="tab" data-class-active="tab == 0" data-action="tab" data-arg="0">Market</div>
|
||||
<div class="tab" data-class-active="tab == 1" data-action="tab" data-arg="1">My orders</div>
|
||||
<div class="tab" style="margin-left: auto;" data-action="refresh">Refresh</div>
|
||||
</div>
|
||||
|
||||
<!-- ================================================= MARKET -->
|
||||
<div class="split" data-if="tab == 0">
|
||||
<div class="goods">
|
||||
<div class="tools">
|
||||
<input class="text" type="text" data-value="filter" maxlength="40"/>
|
||||
<span class="toggle" data-class-on="only_orders" data-action="only-orders">with orders<div class="tip">Only goods somebody offers or wants. Off: every commodity, to place a buy order for it.</div></span>
|
||||
</div>
|
||||
<div class="ghead"><span class="n">Good</span><span class="v">sell</span><span class="v">buy</span><span class="v">NPC</span></div>
|
||||
<div class="list">
|
||||
<div class="hint" style="padding: 10dp;" data-if="goods.size == 0">{{ received ? 'No good matches.' : 'Asking the server...' }}</div>
|
||||
<div class="g" data-for="r : goods" data-class-selected="r.selected" data-class-quiet="!r.has_orders" data-action="good" data-attr-data-arg="r.key">
|
||||
<span class="n">{{ r.name }}</span><span class="v s">{{ r.sell }}</span><span class="v b">{{ r.buy }}</span><span class="v npc">{{ r.npc }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="ihead">
|
||||
<span class="t">{{ has_item ? item_name : 'Pick a good' }}</span>
|
||||
<span class="npc">{{ item_npc }}</span>
|
||||
</div>
|
||||
<div class="chartbar">
|
||||
<span class="toggle" data-class-on="!days90" data-action="days" data-arg="30">30 days</span>
|
||||
<span class="toggle" data-class-on="days90" data-action="days" data-arg="90">90 days</span>
|
||||
<span class="toggle" style="margin-left: 10dp;" data-class-on="!region_here" data-action="region" data-arg="all">all regions</span>
|
||||
<span class="toggle" data-class-on="region_here" data-action="region" data-arg="here">{{ here_region != '' ? here_region : 'this region' }}</span>
|
||||
<span class="legend"><span class="k" style="background-color: #f2b13c;"></span>market mean<span class="k" style="background-color: #dbe6f0;"></span>low - high<span class="k" style="background-color: #5cc8f0;"></span>NPC price<span class="k" style="background-color: #3d6d96;"></span>volume</span>
|
||||
</div>
|
||||
<div class="axis">
|
||||
<span class="y" style="top: 0dp;">{{ chart_hi }}</span>
|
||||
<span class="y" style="top: 176dp;">{{ chart_lo }}</span>
|
||||
</div>
|
||||
<div class="chart">
|
||||
<div class="grid" style="top: 25%;"></div><div class="grid" style="top: 50%;"></div><div class="grid" style="top: 75%;"></div>
|
||||
<div class="col" data-for="b : bars" data-style-left="b.x + '%'" data-style-width="b.w + '%'">
|
||||
<div class="mean" data-if="b.trades" data-style-height="b.mean + '%'"></div>
|
||||
<div class="band" data-if="b.trades" data-style-bottom="b.lo + '%'" data-style-height="(b.hi - b.lo) + '%'"></div>
|
||||
<div class="npc" data-if="b.npc >= 0" data-style-bottom="b.npc + '%'"></div>
|
||||
<div class="tip">{{ b.tip }}</div>
|
||||
</div>
|
||||
<div class="empty" data-if="chart_note != ''">{{ chart_note }}</div>
|
||||
</div>
|
||||
<div class="vol">
|
||||
<div class="vb" data-for="b : bars" data-style-left="b.x + '%'" data-style-width="b.w + '%'" data-style-height="b.vol + '%'"></div>
|
||||
</div>
|
||||
<div class="dates"><span>{{ chart_from }}</span><span class="r">{{ chart_to }}</span></div>
|
||||
|
||||
<div class="books" data-if="has_item">
|
||||
<div class="book gap">
|
||||
<div class="label">Sell orders - buy from them</div>
|
||||
<div class="table">
|
||||
<div class="head"><span class="c1">Base</span><span class="c2">jumps</span><span class="c3">qty</span><span class="c4">price</span></div>
|
||||
<div class="body">
|
||||
<div class="hint" style="padding: 8dp;" data-if="sells.size == 0">Nobody sells this. Place a buy order.</div>
|
||||
<div class="row" data-for="r : sells" data-class-selected="r.selected" data-class-mine="r.mine" data-action="pick-sell" data-attr-data-arg="r.id">
|
||||
<span class="c1">{{ r.base }}</span><span class="c2">{{ r.jumps }}</span><span class="c3">{{ r.qty }}</span><span class="c4">{{ r.price }}</span>
|
||||
<div class="tip">{{ r.who }} - ends in {{ r.expires }}{{ r.mine ? ' - your order' : '' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="book">
|
||||
<div class="label">Buy orders - sell into them</div>
|
||||
<div class="table">
|
||||
<div class="head"><span class="c1">Base</span><span class="c2">jumps</span><span class="c3">qty</span><span class="c4">price</span></div>
|
||||
<div class="body">
|
||||
<div class="hint" style="padding: 8dp;" data-if="buys.size == 0">Nobody wants this yet. Place a sell order.</div>
|
||||
<div class="row" data-for="r : buys" data-class-selected="r.selected" data-class-mine="r.mine" data-action="pick-buy" data-attr-data-arg="r.id">
|
||||
<span class="c1">{{ r.base }}</span><span class="c2">{{ r.jumps }}</span><span class="c3">{{ r.qty }}</span><span class="c4">{{ r.price }}</span>
|
||||
<div class="tip">{{ r.who }} - ends in {{ r.expires }}{{ r.mine ? ' - your order' : '' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel" data-if="has_pick">
|
||||
<div class="pick">{{ pick_text }}</div>
|
||||
<div class="row2">
|
||||
<input class="range" type="range" min="1" step="1" data-attr-max="amount_max" data-value="amount"/>
|
||||
<span class="num" style="width: 80dp; text-align: right;">{{ amount_text }}</span>
|
||||
<div class="btn" style="margin-left: 10dp; padding: 3dp 10dp;" data-action="max">Max</div>
|
||||
<span class="sum">{{ deal_total }}</span>
|
||||
<div class="btn primary" data-action="deal">{{ pick_buy ? 'Sell' : 'Buy' }}<div class="tip">{{ pick_buy ? 'Sells from your depot on that base into the buy order; the credits go to your bank.' : 'Buys with your bank credits; the goods go into your depot on that base.' }}</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel" data-if="has_item">
|
||||
<div class="row2" style="margin-bottom: 8dp;">
|
||||
<span class="toggle" data-class-on="!place_buy" data-action="place-mode" data-arg="sell">Sell order</span>
|
||||
<span class="toggle" style="margin-left: 6dp;" data-class-on="place_buy" data-action="place-mode" data-arg="buy">Buy order</span>
|
||||
<span class="hint" style="margin-left: 14dp;">{{ place_have }}</span>
|
||||
</div>
|
||||
<div class="row2">
|
||||
<span class="label">Amount</span><input class="text" type="text" data-value="place_qty" maxlength="10"/>
|
||||
<span class="label" style="width: 90dp;">Price / unit</span><input class="text" type="text" data-value="place_price" maxlength="12"/>
|
||||
<span class="label" style="width: 50dp;">Days</span><input class="text" type="text" style="width: 50dp;" data-value="place_days" maxlength="2"/>
|
||||
<div class="btn primary" data-class-disabled="!can_place" data-action="place">Place<div class="tip">Sell order: the goods leave your depot here and wait on the market. Buy order: the credits wait in escrow; what is sold into it goes into your depot here.</div></div>
|
||||
</div>
|
||||
<div class="info">{{ place_info }}</div>
|
||||
</div>
|
||||
|
||||
<div class="status" data-class-bad="!status_ok" data-if="status != ''">{{ status }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ================================================= MY ORDERS -->
|
||||
<div class="mine-split" data-if="tab == 1">
|
||||
<div class="label">Your orders</div>
|
||||
<div class="table mt" style="flex: 1 1 0;">
|
||||
<div class="head"><span class="cs">Kind</span><span class="c1">Good</span><span class="cb">Base</span><span class="cn">qty</span><span class="cn">price</span><span class="cn">ends in</span></div>
|
||||
<div class="body">
|
||||
<div class="hint" style="padding: 8dp;" data-if="mine.size == 0">You have no orders on the market.</div>
|
||||
<div class="row" data-for="r : mine" data-class-selected="r.selected" data-action="mine-pick" data-attr-data-arg="r.id">
|
||||
<span class="cs" data-style-color="r.buy ? '#5fd08a' : '#f2b13c'">{{ r.kind }}</span><span class="c1">{{ r.item }}</span><span class="cb">{{ r.base }}</span>
|
||||
<span class="cn">{{ r.qty }}</span><span class="cn">{{ r.price }}</span><span class="cn">{{ r.expires }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel" data-if="has_mine_pick">
|
||||
<div class="row2">
|
||||
<span class="label">New price</span><input class="text" type="text" data-value="reprice" maxlength="12"/>
|
||||
<div class="btn primary" data-action="mine-price">Set price<div class="tip">A new price per unit; the broker fee is charged again. A buy order's escrow follows the price.</div></div>
|
||||
<div class="btn danger" style="margin-left: 10dp;" data-action="mine-cancel">Take back<div class="tip">Sell order: the goods go back into your depot on that base. Buy order: the escrow goes back to your bank.</div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="status" data-class-bad="!status_ok" data-if="status != ''">{{ status }}</div>
|
||||
<div class="label" style="margin-top: 12dp;">Your last trades</div>
|
||||
<div class="table mt" style="flex: 1 1 0;">
|
||||
<div class="head"><span class="cb">When</span><span class="cs">Side</span><span class="c1">Good</span><span class="cn">qty</span><span class="cn">price</span><span class="cb">Base</span></div>
|
||||
<div class="body">
|
||||
<div class="hint" style="padding: 8dp;" data-if="trades.size == 0">No trades yet.</div>
|
||||
<div class="row" data-for="r : trades">
|
||||
<span class="cb">{{ r.when }}</span><span class="cs">{{ r.side }}</span><span class="c1">{{ r.item }}</span>
|
||||
<span class="cn">{{ r.qty }}</span><span class="cn">{{ r.price }}</span><span class="cb">{{ r.base }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="win-foot">
|
||||
<span class="key">Esc</span><span class="hint">close</span>
|
||||
</div>
|
||||
</body>
|
||||
</rml>
|
||||
@@ -79,6 +79,13 @@
|
||||
.ln.lane { border-top: 3dp #2f6d8f; }
|
||||
.ln.route { border-top: 3dp #5cc8f0; }
|
||||
.ln.waypath { border-top: 3dp #f2b13c; }
|
||||
|
||||
/* the original's look (player's wish): lanes, jump links, the route and every marker are drawn by
|
||||
the original map under the box (NeuroNetNavMap::RemDrawBackground); ours stay as names, the
|
||||
selection ring and the bookmarks (REM's own) */
|
||||
.ln { display: none; }
|
||||
.mi .s { opacity: 0; }
|
||||
.bookmark .s { opacity: 1; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="window" data-model="navmap">
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
.nb img { transform: perspective(240dp) rotateY(0deg) scale(1); transition: transform 0.2s cubic-out; }
|
||||
.nb.active img { image-color: #f2b13c; }
|
||||
.nb .tip { top: 40dp; right: 0; left: auto; bottom: auto; width: 230dp; white-space: normal; text-align: right; }
|
||||
.nb:hover .tip { display: block; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="nnstrip" data-model="nnbar">
|
||||
|
||||
@@ -3,14 +3,13 @@
|
||||
<title>Objective</title>
|
||||
<link type="text/rcss" href="rem.rcss"/>
|
||||
<style>
|
||||
/* no box of its own: only the banner, centred under the top bars */
|
||||
body.objdoc { position: absolute; left: 0; top: 0; width: 0; height: 0; display: block; background-color: transparent; }
|
||||
/* no box of its own: only the banner, centred under the top bars. The body spans the
|
||||
screen (a 0 x 0 body made the banner's box shrink to nothing at the left edge with the
|
||||
text running out of it) and lets the mouse through. */
|
||||
body.objdoc { position: absolute; left: 0; top: 0; right: 0; bottom: 0; display: flex; flex-direction: row; justify-content: center; align-items: flex-start; background-color: transparent; pointer-events: none; }
|
||||
.obj
|
||||
{
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 70dp;
|
||||
transform: translateX(-50%);
|
||||
margin-top: 70dp;
|
||||
max-width: 900dp;
|
||||
padding: 8dp 22dp;
|
||||
background-color: #070b12d9;
|
||||
@@ -23,7 +22,6 @@
|
||||
letter-spacing: 1.5dp;
|
||||
color: #f2b13c;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
.slide { display: flex; flex-direction: row; align-items: center; width: 330dp; }
|
||||
.slide .step { width: 26dp; padding: 2dp 0; text-align: center; border: 1dp #24405c; border-radius: 3dp; color: #dbe6f0; }
|
||||
.slide .step:hover { border-color: #5cc8f0; color: #5cc8f0; }
|
||||
.slide .track { flex: 1; height: 6dp; margin: 0 8dp; background-color: #24405c; border-radius: 3dp; }
|
||||
.slide .track { flex: 1; height: 18dp; margin: 0 8dp; padding: 6dp 0; cursor: pointer; }
|
||||
.slide .rail { height: 6dp; background-color: #24405c; border-radius: 3dp; }
|
||||
.slide .track:hover .rail { background-color: #2e5378; }
|
||||
.slide .fill { height: 6dp; background-color: #f2b13c; border-radius: 3dp; }
|
||||
.opt .v { width: 120dp; text-align: right; font-family: "IBM Plex Mono"; font-size: 12dp; color: #8197ad; margin-left: 10dp; }
|
||||
.ask { padding: 12dp; margin-bottom: 12dp; border: 1dp #24405c; border-left: 3dp #f2b13c; border-radius: 3dp; background-color: #0d1622; display: flex; flex-direction: row; align-items: center; }
|
||||
@@ -91,7 +93,7 @@
|
||||
<div class="switch" data-if="r.kind == 1" data-class-on="r.on" data-action="toggle" data-attr-data-arg="r.key">{{ r.value }}</div>
|
||||
<div class="slide" data-if="r.kind == 2">
|
||||
<span class="step" data-action="dec" data-attr-data-arg="r.key">-</span>
|
||||
<div class="track"><div class="fill" data-style-width="r.fill + '%'"></div></div>
|
||||
<div class="track" data-scrub="set" data-attr-data-arg="r.key"><div class="rail"><div class="fill" data-style-width="r.fill + '%'"></div></div></div>
|
||||
<span class="step" data-action="inc" data-attr-data-arg="r.key">+</span>
|
||||
<span class="v">{{ r.value }}</span>
|
||||
</div>
|
||||
|
||||
+56
-2
@@ -40,6 +40,25 @@
|
||||
.cmp .cv.down { color: #ef6a5b; }
|
||||
.cmp .cv.dim { color: #8197ad; }
|
||||
.cmp .cn { margin-top: 4dp; font-size: 12dp; color: #8197ad; }
|
||||
.col-h .tools { margin-left: auto; display: flex; flex-direction: row; align-items: center; }
|
||||
.col-h .tools .btn { margin: 0 0 0 8dp; padding: 3dp 10dp; }
|
||||
.switch { width: 58dp; padding: 3dp 0; text-align: center; border: 2dp #3d6d96; border-radius: 4dp; font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 13dp; letter-spacing: 1dp; color: #8197ad; }
|
||||
.switch.on { border-color: #f2b13c; color: #f2b13c; background-color: #f2b13c1f; }
|
||||
.switch:hover { border-color: #5cc8f0; }
|
||||
.flag { display: flex; flex-direction: row; align-items: center; font-size: 13dp; color: #b8c4cc; }
|
||||
.flag .switch { width: 44dp; margin-right: 6dp; }
|
||||
.gear { font-size: 16dp; }
|
||||
.panel { position: absolute; top: 60dp; width: 420dp; max-height: 70%; display: flex; flex-direction: column; padding: 14dp; border: 1dp #f2b13c; border-radius: 3dp; background-color: #0b1320f4; z-index: 10; }
|
||||
.panel.left { left: 24dp; }
|
||||
.panel.right { right: 24dp; }
|
||||
.panel h3 { margin-bottom: 4dp; }
|
||||
.panel .pnote { font-size: 12dp; color: #8197ad; margin-bottom: 10dp; }
|
||||
.panel .plist { flex: 1 1 auto; min-height: 0; overflow-y: auto; border: 1dp #24405c; border-radius: 3dp; }
|
||||
.panel .prow { display: flex; flex-direction: row; align-items: center; padding: 5dp 10dp; border-bottom: 1dp #ffffff08; }
|
||||
.panel .prow .n { flex: 1; min-width: 0; }
|
||||
.panel .pfoot { display: flex; flex-direction: row; margin-top: 10dp; }
|
||||
.panel .pfoot .btn { margin: 0 8dp 0 0; padding: 3dp 10dp; }
|
||||
.content { position: relative; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="window" data-model="outfitter">
|
||||
@@ -49,13 +68,23 @@
|
||||
<span class="spacer"></span>
|
||||
<span class="chip">Hold <span class="v">{{ hold }}</span></span>
|
||||
<span class="chip">Credits <span class="v">{{ credits }}</span></span>
|
||||
<span class="chip" data-if="tax != ''">{{ tax }}<div class="tip">The server takes this share of what you sell to the base. It follows the region's trade of the last days: the busiest region pays the most.</div></span>
|
||||
<span class="close" data-action="close">×</span>
|
||||
</div>
|
||||
<div class="win-main">
|
||||
<div class="content">
|
||||
<div class="subtabs">
|
||||
<div class="tab" data-class-active="category == -1" data-action="category" data-arg="-1">All</div>
|
||||
<div class="tab" data-class-active="category == 0" data-action="category" data-arg="0">Weapons</div>
|
||||
<div class="tab" data-class-active="category == 1" data-action="category" data-arg="1">Ammo</div>
|
||||
<div class="tab" data-class-active="category == 2" data-action="category" data-arg="2">Equipment</div>
|
||||
<div class="tab" data-class-active="category == 3" data-action="category" data-arg="3">Cargo bay</div>
|
||||
</div>
|
||||
<div class="split">
|
||||
<div class="colm">
|
||||
<div class="col-h"><h3>For sale here</h3><span class="hint">{{ market.size }}</span></div>
|
||||
<div class="col-h"><h3>For sale here</h3><span class="hint" style="margin-left: 10dp;">{{ market.size }}</span>
|
||||
<span class="tools"><div class="btn" data-class-active="panel == 1" data-action="autobuy-panel"><span class="gear">⚙</span> Autobuy<div class="tip">What the server buys by itself when you dock: ammunition for your launchers, nanobots and shield batteries.</div></div></span>
|
||||
</div>
|
||||
<input class="text search" type="text" data-value="filter" maxlength="40"/>
|
||||
<div class="list">
|
||||
<div class="hint" style="padding: 10dp;" data-if="market.size == 0">No equipment for sale here.</div>
|
||||
@@ -76,7 +105,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="colm">
|
||||
<div class="col-h"><h3>Your equipment</h3><span class="hint">hold {{ hold }}</span></div>
|
||||
<div class="col-h"><h3>Your equipment</h3>
|
||||
<span class="tools">
|
||||
<span class="flag"><div class="switch" data-class-on="hide_mounted" data-action="hide-mounted">{{ hide_mounted ? 'ON' : 'OFF' }}</div>loot only<div class="tip">Leaves out what is mounted and the ammunition, nanobots and shield batteries your ship uses: what is left is loot to sell.</div></span>
|
||||
<div class="btn" data-class-disabled="loot_count == 0" data-action="sell-loot">Sell all loot ({{ loot_count }})<div class="tip">Sells everything that came aboard since you last launched (loot), except what you keep (the gear button).</div></div>
|
||||
<div class="btn" data-class-active="panel == 2" data-action="keep-panel"><span class="gear">⚙</span><div class="tip">What "Sell all loot" keeps.</div></div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="hint" style="padding: 10dp;" data-if="gear.size == 0">No equipment.</div>
|
||||
<div class="good" data-for="r : gear" data-class-selected="r.selected" data-class-disabled="r.disabled" data-action="sell-pick" data-attr-data-arg="r.key">
|
||||
@@ -87,6 +122,24 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel left" data-if="panel == 1">
|
||||
<h3>AUTOBUY</h3>
|
||||
<div class="pnote" data-if="autobuy_known">Bought by itself when you dock, where the base sells it, as far as hold and credits go (also /autobuy in the chat).</div>
|
||||
<div class="pnote" data-if="!autobuy_known">This server sends no autobuy settings.</div>
|
||||
<div class="plist">
|
||||
<div class="prow" data-for="r : autobuy"><span class="n">{{ r.name }}</span><div class="switch" data-class-on="r.on" data-action="autobuy" data-attr-data-arg="r.key">{{ r.on ? 'ON' : 'OFF' }}</div></div>
|
||||
</div>
|
||||
<div class="pfoot"><div class="btn" data-action="autobuy-all" data-arg="1">All on</div><div class="btn" data-action="autobuy-all" data-arg="0">All off</div><div class="btn" data-action="autobuy-panel">Close</div></div>
|
||||
</div>
|
||||
<div class="panel right" data-if="panel == 2">
|
||||
<h3>KEEP LOOT</h3>
|
||||
<div class="pnote">"Sell all loot" sells everything that came aboard since you launched; what is set to KEEP here stays in the hold.</div>
|
||||
<div class="plist">
|
||||
<div class="hint" style="padding: 10dp;" data-if="keep.size == 0">No equipment in the hold.</div>
|
||||
<div class="prow" data-for="r : keep"><span class="n">{{ r.name }}</span><div class="switch" data-class-on="r.on" data-action="keep" data-attr-data-arg="r.key">{{ r.on ? 'KEEP' : 'SELL' }}</div></div>
|
||||
</div>
|
||||
<div class="pfoot"><div class="btn" data-action="keep-panel">Close</div></div>
|
||||
</div>
|
||||
<div class="deal">
|
||||
<img data-if="has_pick && pick.icon != ''" data-attr-src="pick.icon"/>
|
||||
<div class="what">
|
||||
@@ -100,6 +153,7 @@
|
||||
</div>
|
||||
<span class="why" data-if="reason != ''">{{ reason }}</span>
|
||||
<span class="sum">{{ total }}</span>
|
||||
<span class="why" data-if="tax_note != ''" style="color: #b8c4cc;">{{ tax_note }}</span>
|
||||
<div class="btn" style="margin-right: 10dp;" data-if="side == 1 && mount_label != ''" data-action="mount">{{ mount_label }}<div class="tip">{{ mount_tip }}</div></div>
|
||||
<div class="btn primary" data-class-disabled="!has_pick || reason != ''" data-action="deal">{{ side == 0 ? 'Buy' : 'Sell' }}<div class="tip">{{ side == 0 ? 'Buys it: onto a free hardpoint of your ship when there is one, else into the hold.' : 'Sells it; used equipment fetches less.' }}</div></div>
|
||||
</div>
|
||||
|
||||
+7
-4
@@ -3,9 +3,10 @@
|
||||
<title>Radar</title>
|
||||
<link type="text/rcss" href="rem.rcss"/>
|
||||
<style>
|
||||
/* the 3D radar (rem_ui_radar.cpp): the turnable sphere and symbols are the <radar> element's own geometry,
|
||||
frame, title, range buttons and names are this document's */
|
||||
body.radar { position: absolute; left: 16dp; top: 31%; width: 320dp; height: 346dp; background-color: transparent; pointer-events: none;
|
||||
/* the radar (rem_ui_radar.cpp): the dish, rim, fans, symbols and wireframes are the <radar> element's own
|
||||
geometry; frame, title, projection / range buttons and names are this document's */
|
||||
.head .threat { margin-left: 8dp; font-family: "IBM Plex Mono"; font-size: 11dp; color: #ff3b30; font-weight: 700; }
|
||||
body.radar { position: absolute; left: 16dp; top: 31%; width: 320dp; height: 250dp; background-color: transparent; pointer-events: none;
|
||||
font-family: "Saira SemiCondensed"; font-size: 14dp; color: #dbe6f0; }
|
||||
.frame { position: absolute; left: 0; top: 0; right: 0; bottom: 0; box-sizing: border-box; background-color: #050a18c0;
|
||||
border: 1dp #3d6d96; border-radius: 4dp; pointer-events: auto; display: flex; flex-direction: column; }
|
||||
@@ -17,7 +18,7 @@
|
||||
.rng:hover { color: #5cc8f0; border-color: #5cc8f0; }
|
||||
.rng.on { color: #f2b13c; border-color: #f2b13c; background-color: #f2b13c24; }
|
||||
#scope { position: relative; flex: 1; }
|
||||
radar { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; cursor: move; }
|
||||
radar { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; }
|
||||
.lbl { position: absolute; font-size: 12dp; white-space: nowrap; pointer-events: none; }
|
||||
.fwd { position: absolute; left: 50%; margin-left: -4dp; top: 4dp; font-family: "IBM Plex Mono"; font-size: 10dp; color: #f2b13c; pointer-events: none; }
|
||||
</style>
|
||||
@@ -26,7 +27,9 @@
|
||||
<div class="frame">
|
||||
<div class="head">
|
||||
<span class="title">RADAR</span><span class="count">{{ count }}</span>
|
||||
<span class="threat" data-if="threat">MISSILE</span>
|
||||
<span class="spacer"></span>
|
||||
<span class="rng" data-action="projection">{{ projection == 1 ? '3D' : 'TOP' }}</span>
|
||||
<span class="rng" data-class-on="range == 0" data-action="range" data-arg="0">2.5K</span>
|
||||
<span class="rng" data-class-on="range == 1" data-action="range" data-arg="1">5K</span>
|
||||
<span class="rng" data-class-on="range == 2" data-action="range" data-arg="2">7.5K</span>
|
||||
|
||||
+2
-1
@@ -274,7 +274,8 @@ h3, .label
|
||||
border-radius: 3dp;
|
||||
padding: 6dp 9dp;
|
||||
}
|
||||
.btn:hover .tip { display: block; }
|
||||
/* shown by the tool tip window over every window (rem_ui_tooltip.cpp), not here: inside its own
|
||||
document another window could cover it */
|
||||
|
||||
.actions { display: flex; flex-direction: row; flex-wrap: wrap; }
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
.nb img { transform: perspective(240dp) rotateY(0deg) scale(1); transition: transform 0.2s cubic-out; }
|
||||
.nb.active img { image-color: #f2b13c; }
|
||||
.nb .tip { top: 40dp; left: 0; right: auto; bottom: auto; width: 230dp; white-space: normal; }
|
||||
.nb:hover .tip { display: block; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="nnstrip" data-model="rembar">
|
||||
|
||||
@@ -19,10 +19,13 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ftip.roll { border-left-color: #5cc8f0; font-size: 14dp; white-space: pre-line; }
|
||||
/* a REM window's .tip (the hovered element's), drawn here so no other window covers it */
|
||||
.ftip.hov { width: 260dp; white-space: normal; font-family: Barlow; background-color: #05090f; border-left: 2dp #3d6d96; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="tipdoc" data-model="tooltip">
|
||||
<div class="ftip" data-if="tip_shown" data-style-left="tip_left" data-style-top="tip_top">{{ tip_text }}</div>
|
||||
<div class="ftip roll" data-if="roll_shown" data-style-left="roll_left" data-style-top="roll_top">{{ roll_text }}</div>
|
||||
<div class="ftip hov" data-if="hov_shown" data-style-left="hov_left" data-style-top="hov_top" data-rml="hov_rml"></div>
|
||||
</body>
|
||||
</rml>
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
<span class="spacer"></span>
|
||||
<span class="chip">Hold <span class="v">{{ hold }}</span></span>
|
||||
<span class="chip">Credits <span class="v">{{ credits }}</span></span>
|
||||
<span class="chip" data-if="tax != ''">{{ tax }}<div class="tip">The server takes this share of what you sell to the base. It follows the region's trade of the last days: the busiest region pays the most.</div></span>
|
||||
<span class="close" data-action="close">×</span>
|
||||
</div>
|
||||
<div class="win-main">
|
||||
@@ -75,6 +76,7 @@
|
||||
</div>
|
||||
<span class="why" data-if="reason != ''">{{ reason }}</span>
|
||||
<span class="sum">{{ total }}</span>
|
||||
<span class="why" data-if="tax_note != ''" style="color: #b8c4cc;">{{ tax_note }}</span>
|
||||
<div class="btn primary" data-class-disabled="!has_pick || reason != ''" data-action="deal">{{ side == 0 ? 'Buy' : 'Sell' }}<div class="tip">{{ side == 0 ? 'Buys the amount into your cargo hold.' : 'Sells the amount from your cargo hold.' }}</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user