REM-Client 2dcd748a: crew ships - the pilot gives the gunner weapons (crew window), free view for the gunner, no disconnect on docking (rem-server 47f957f)

This commit is contained in:
2026-11-10 00:10:02 +01:00
parent c03b639158
commit 3e034999c8
3 changed files with 13 additions and 6 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
REM-Client test build (64-bit) REM-Client test build (64-bit)
date: 2026-11-09 22:54 date: 2026-11-10 00:09
commit: 2e058e11 (main) commit: 2dcd748a (main)
subject: Crew ships: the gunner sees the ship fly as the pilot flies it - the pilot's throttle, cruise and afterburner on the gunner's ship (engine flames, cruise charge, afterburner; the pilot's client reports its throttle, rem-server 123e97f), and its velocity from the net state (get_velocity of that one remote-controlled ship: the HUD's speed, contrails, trails - it read 0) subject: Crew ships: the pilot gives the gunner weapons in the crew window (Gunner weapons: give / take back, within the server's rule) - the gunner fires only those, the pilot only the rest (the weapon keys too: CliShipFireWeapons asks RemCrew::MayFire); the gunner picks its view (turret at the start, then free); the client confirms an invitation (SEEN) - rem-server 47f957f
tree: clean tree: clean
build: OK build: OK
Binary file not shown.
+10 -3
View File
@@ -3,7 +3,7 @@
<title>Crew</title> <title>Crew</title>
<link type="text/rcss" href="rem.rcss"/> <link type="text/rcss" href="rem.rcss"/>
<style> <style>
body.window.small { top: 22%; height: 470dp; } body.window.small { top: 16%; height: 560dp; }
.lead { line-height: 1.5; font-size: 15dp; padding: 12dp; margin-bottom: 14dp; background-color: #5cc8f008; } .lead { line-height: 1.5; font-size: 15dp; padding: 12dp; margin-bottom: 14dp; background-color: #5cc8f008; }
.lead .who { color: #f2b13c; } .lead .who { color: #f2b13c; }
.label { margin: 14dp 0 6dp 0; font-family: "Saira SemiCondensed"; letter-spacing: 1.1dp; text-transform: uppercase; color: #8197ad; } .label { margin: 14dp 0 6dp 0; font-family: "Saira SemiCondensed"; letter-spacing: 1.1dp; text-transform: uppercase; color: #8197ad; }
@@ -41,7 +41,7 @@
<div class="lead">Gunner of <span class="who">{{ pilot }}</span>. <div class="lead">Gunner of <span class="who">{{ pilot }}</span>.
<span data-if="phase == 'waiting'">You board when the pilot launches.</span> <span data-if="phase == 'waiting'">You board when the pilot launches.</span>
<span data-if="phase == 'boarding'">Boarding ...</span> <span data-if="phase == 'boarding'">Boarding ...</span>
<span data-if="phase == 'aboard'">The mouse turns the view, the guns aim at the cursor: {{ weapons }} weapon(s) of the seat.</span> <span data-if="phase == 'aboard'">{{ weapons }} weapon(s) are yours - the pilot decides which. Turret view (mouse turns the view) or the pilot's view: your choice.</span>
<span data-if="phase == 'docked'">Docked with the pilot; you launch with them.</span> <span data-if="phase == 'docked'">Docked with the pilot; you launch with them.</span>
</div> </div>
<div class="hint">Your own character and ship stay at your base. If the pilot dies or goes offline you are back there.</div> <div class="hint">Your own character and ship stay at your base. If the pilot dies or goes offline you are back there.</div>
@@ -51,11 +51,18 @@
<div data-if="enabled &amp;&amp; role != 'gunner' &amp;&amp; (crewship || role == 'pilot')"> <div data-if="enabled &amp;&amp; role != 'gunner' &amp;&amp; (crewship || role == 'pilot')">
<div class="label">Gunner seat</div> <div class="label">Gunner seat</div>
<div class="seat" data-class-on="gunner != ''"> <div class="seat" data-class-on="gunner != ''">
<span class="nm" data-if="gunner != ''">{{ gunner }}<span data-if="phase == 'aboard'"> &#183; aboard ({{ weapons }} weapon(s) of the seat are theirs)</span><span data-if="phase == 'waiting'"> &#183; boards at your launch</span><span data-if="phase == 'docked'"> &#183; docked with you</span></span> <span class="nm" data-if="gunner != ''">{{ gunner }}<span data-if="phase == 'aboard'"> &#183; aboard</span><span data-if="phase == 'waiting'"> &#183; boards at your launch</span><span data-if="phase == 'docked'"> &#183; docked with you</span></span>
<span class="nm empty" data-if="gunner == '' &amp;&amp; invited != ''">invited: {{ invited }} ...</span> <span class="nm empty" data-if="gunner == '' &amp;&amp; invited != ''">invited: {{ invited }} ...</span>
<span class="nm empty" data-if="gunner == '' &amp;&amp; invited == ''">empty - you fly and fire everything yourself</span> <span class="nm empty" data-if="gunner == '' &amp;&amp; invited == ''">empty - you fly and fire everything yourself</span>
<div class="btn small" data-if="gunner != '' || invited != ''" data-action="kick">{{ gunner != '' ? 'Kick' : 'Withdraw' }}</div> <div class="btn small" data-if="gunner != '' || invited != ''" data-action="kick">{{ gunner != '' ? 'Kick' : 'Withdraw' }}</div>
</div> </div>
<div data-if="gunner != '' &amp;&amp; seat_weapons.size > 0">
<div class="label">Gunner weapons - on: the gunner fires it, off: you do</div>
<div class="row" data-for="w : seat_weapons" data-action="give" data-attr-data-arg="w.id">
<span class="nm">{{ w.name }}</span><span class="st" data-class-ok="w.given">{{ w.given ? 'GUNNER' : 'pilot' }}</span><span class="btn small">{{ w.given ? 'Take back' : 'Give' }}</span>
</div>
<div class="hint">Which weapons can go to the gunner is set by the server for this ship.</div>
</div>
<div data-if="gunner == ''"> <div data-if="gunner == ''">
<div class="label">Invite from your group</div> <div class="label">Invite from your group</div>
<div class="row" data-for="m : members" data-action="invite" data-attr-data-arg="m.name"> <div class="row" data-for="m : members" data-action="invite" data-attr-data-arg="m.name">