-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Racks - Add Use to Intercom-Radios and Increase access on MRAPs #1271
Conversation
|
I see, that feature does certainly seem useful to allow i.e: APC passengers to access the racks by getting on the crew intercom. I'll figure out a better value for this PR. |
Those vehicles simulate the AN/VIC-3's Full Functional Crew Station (FFCS) system used in real life. Aircraft don't have such a system, those usually have a few radios with direct access to them. Beyond that it's very aircraft-specific. Intercom doesn't "envelop" radios in aircraft, they are simply patched to the same audio lines. I don't think passengers on bigger passenger/cargo planes can listen in on any radios like you can on smaller 2/4/6-seater planes. Open to changes where appropriate in Arma/ACRE2 of course.
That change seems good to me. |
Agree for most aircraft passenger seats, though I would presume that the inner rear seats in something like a little bird would have some access to rack audio and settings in the case of command elements being carried. I still find the current system on armored vehicles a bit unintuitive while it is simultaneously implemented in a simpler way on other vehicles/aircraft. |
I don't think Little Birds are realistically supposed to carry command elements, that's an incredibly risky position. If you want that, there is nothing stopping you from having a patch config modifying that though. Yes, AN/VIC-3 is at first unintuitive, but not so much if you want to fulfill all the requirements that it does, in a crew environment such as a tank operates in.
It doesn't operate the same way. Via the FFCS you can only select 1 radio and listen to one or all (technically there is an exception with Work on A-F and Monitor on A-F, but I don't think we implement that due to lack of hardware that the crew headsets). While in non-FFCS equipped vehicles, you have direct access and can use multiple radios. How do you assure compatibility between the two? |
Memories of Black Hawk Down must have guided my typing hand there 😆
My proposal is to allow "use" on armored vehicle racks from positions that can already fully access it, as a mere shortcut to the intercom click-dance to make it faster and more intuitive to use without having to be fully familiar with FFCS manipulation. |
I don't personally think FFCS is any harder, keybind to open the UI, click knobs. Although it is more complex because it allows more advanced configurations to be used by the player. I think this is more a case of player familiarity.
In this case, you only need to manipulate Work if Monitor is already set to WK. But now you are giving me ideas, maybe "Use" in FFCS-equipped vehicles should just open FFCS instead. 😁 |
I agree. just yesterday I had to explain to someone how to tune FFCS to use the rack while being time constrained by the mission start 😅 For that exact purpose, it would be useful to have "use" function that sets Work to the Xth rack. Maybe with a slight delay so that users can see it happen and get a hint on how it should be manipulated? |
I like that idea. Make sure it's also slower than doing it manually. Kind of like a quick in-game tutorial. |
Managed to create a working prototype, it adds a "use" action to Intercom-Wired Racks that fetches the mounted radio, calculates the current+desired work knob position, opens the FFCS GUI, sleeps 0.5s and then starts moving the work knob to the desired position in 0.2s / step intervals. I'll add some comments next, but the core structure already seems good and optimized enough to me. Only 3 issues remain:
|
|
isn't |
Is there another way to delay the knob turning and properly animate the whole thing? I can't think of anything that wouldn't use scheduled space. |
|
[{systemChat "output 1";}, [], 5] call CBA_fnc_waitAndExecute;
systemChat "output 2";
[{systemChat "output 3";}, [], 2] call CBA_fnc_waitAndExecute; will result in the following output:
Because of this behaviour, implementing the previous while loop that moves the work knob to the desired position in 0.2s intervals seems pretty messy code-wise. |
Nest the CBA_fnc_waitAndExecute calls |
I know that could be done, but it seems too messy to do so dynamically without implementing an additional recursive function. Unfortunately, the first issue I noticed in the past popped up again on inheritors of |
Action statement should be put into a separate function. A function that signifies it's a "guide/helper". I did get another idea though, maybe a better way to approach this is that action only opening the FFCS when that is available, instead of performing the whole thing? That would mean this PR would just improve UX between standalone-radio and intercom-radio, while still using faithful representation of both systems as they would appear in reality. Thing is, I don't think automatically doing the whole procedure on intercom-radio on an action that presents itself exactly the same on standalone-radio, would make "users see it happen and get a hint on how it should be manipulated", but they would just keep using it instead of using the FFCS as it should be used. Actually, you don't really get any reason to use FFCS with the action as it currently is, and you can't even tell it will do that just by looking at it.
This can be done in a separate PR. |
I couldn't push to your PR directly (didn't allow edits from maintainers?). Here is the diff: 48acedf |
Not completely sure what you are referring to, the animation logic of CBA wait functions? If so I'll keep that in mind for the future.
I've investigated the issue further the past few days and managed to repro it, it only happened when I'd teleport myself from one vehicle to another (as Zeus) during testing, then it would flicker the intercom UI off and on and "stop using" the Rack despite having the work knob in the correct position. Exiting and re-entering the vehicle fixed it.
I generally disagree.
Wasn't aware of that setting, I'll enable it for future PRs once I figure out where exactly it's located, the related documentation isn't really clear to me. |
But we don't want that. FFCS should be used. Yes it is more complex, but so it is in real life. Yes crewmen get trained to use it, but we are simulating what we can of the real counterpart.
Moot point considering we are playing a game that already takes a lot of free time to learn. :P
Agreed, however you are missing one point here. Since player can't tell the standalone-radio "Use" action from the intercom-radio "Use" action, teaching the player how to use FFCS doesn't help when there is no indicator the "Use" action is just a lengthy guide. I do however agree with you on accessibility and making it approachable for those that want a simplified system. I see a few options at this time:
@mharis001 You are the UI magician, what's your take on it? Also @PabstMirror and your community? |
Right side, below labels, milestones etc. there should be a checkbox "Allow edits by maintainers". See GitHub Blog post. |
I agree with @jonpas in terms of preference of the different options. "Fake turning" the knob after a delay seems weird to me and could have UI issues such as the user interaction while the fake turns are happening. I think the 1 or 4-simplest options described above are the best in terms of expected behaviour from a UX standpoint as well as consistency across other ACRE UIs. |
Not really, because we are arguing about a mechanic (connecting to a Rack) that works one way in some kinds of vehicles (MRAPs/Aircraft) and in a totally different way in others (Armoured vehicles). This creates a counter-intuitive UI from the player's POV and worsens UX, at least IMO.
Agreed.
Personally, I'd rank them as follows:
I don't really like option 4 in any variation. The current argument is similar but different than the "realism vs gameplay" one in #1272. We are debating how to best improve UX and UI consistency without affecting "realism".
Odd, I don't see anything else below the participants. |
This is the best option imo, use opens the FFCS and user changes the knob themselves. Could maybe call the node "Use via FFCS" isntead of just "Use"? |
All the better reason to use the in-game Field Manual system to document, which ACE3 already started using. |
You wouldn't see it every time though, only when trying to "use" the rack via the interaction instead of doing it the correct way via FFCS, which the hint/tooltip would tell you to do.
I agree it makes sense to integrate most ACRE user guides into the field manual. |
I do however think that "Use" action improves UX and we should have that anyways. If you are working with radios you expect to go through "Radios", especially since we have a mix of vehicles with FFCS and those without. So essentially you would use this interaction at all times.
Absolutely - pull requests very welcome! |
You would see it every time you used the Use action. I would not want that. |
But that's exactly the point of that action (if we don't want it to turn knobs), to clearly show/tell players that on armoured vehicles they need to use FFCS to access vehicle racks. |
I have found an implementation that might make everyone happy. I took params ["_radioId"];
private _return = "";
//TODO: Optimize
{
private _rackId = typeOf _x;
if (([_rackId] call FUNC(getMountedRadio)) == _radioId) exitWith {_return = _rackId;};
} forEach (nearestObjects [[-1000,-1000], ["ACRE_baseRack"], 1, true]);
_return The way to find the corresponding Rack that I used for my initial animated implementation, and now in params ["_radioId"];
private _return = "";
private _wiredRacks = [vehicle acre_player, acre_player, EGVAR(sys_intercom,activeIntercom), "wiredRacks"] call EFUNC(sys_intercom,getStationConfiguration);
{
private _rackId = _x select 0;
if (([_rackId] call FUNC(getMountedRadio)) == _radioId) exitWith {_return = _rackId;};
} forEach _wiredRacks;
_return |
Maybe this PR could also close #779 ? |
Neat, I think I like that. I would name the interaction
I would say yes, but I'll have to think a bit if there is a case we are not catching like that. I don't think so though?
That would be good! |
Depends on which subset of racks needs to be searched by the function, just those on the player's vehicle or all in the entire mission. |
2 requested changes.
Would be best done in separate PR as after those 2 requested changes, I would like to merge this one. |
Co-authored-by: jonpas <[email protected]>
Alright, done 👍🏻 |
German and Italian strings should be changed accordingly as well. |
When merged this pull request will:
Fix AN/VRC-103 not being usable on Tracked VehiclesOn all inheritors ofTank_F
andWheeled_APC_F
, which includes all Tanks, tracked/wheeled APCs+IFVs, SPAA and Tank Destroyers, the (only) integrated AN/VRC-103 rack was unusable. You could open the radio interface but not make it appear in your Self Interact radio list to actually T/R with it.ImageI compared the non-functional VRC-103 definition to the working one of MRAPs, the most probable cause appeared to beintercom[] = {"intercom_1"};
, so I tried removing that and it now works. It appears to have been last changed in e95821a, maybe"intercom_1"
blocks the rack when a crew intercom channel exists?ImageDescriptive "Use" interaction for racks wired to intercom:
Since on MRAPs and Aircraft racks can be used with just a "use" function, players who haven't read the Intercom documentation in detail won't easily realize that they need to manipulate the FFCS's Work Knob to start using the racks on armoured vehicles.
To explain the process on the fly, an interaction named "Use via Intercom (Work-Knob to A/B/C/D/E/F)" will point out the FFCS knob to turn before opening the FFCS GUI, so that the player can set it himself and have learned how to do it in the future.
Increase access to racks on MRAPs
By default the racks on MRAPs are available only to the driver and front (first) passenger, this makes complete sense on the unarmed NATO M-ATV (and pretty much any other light military vehicle configuration), as you'd want the vehicle commander or navigator to be in that seat.
On the AAF MRAP however, there is a "Commander" position with access to an extendable IR sensor turret and laser designator, IMO it makes complete sense for that guy to have access to radios as well, so I added it to the
allowedPositions[]
list ofMRAP_03_base_F
.(Picture is from the Commander seat's POV on an armed AAF MRAP)
I guess it would make sense for the Gunners of all vanilla MRAPs to also have access to the Racks, since they use remote turrets and sit in front of a whole terminal. However I can see how putting that in the config would also allow Gunners on modded MRAPs with conventional manned turrets to access the Racks, which doesn't make much sense.