Skip to content
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

Contract Browser #45

Open
deathride58 opened this issue Dec 27, 2022 · 0 comments
Open

Contract Browser #45

deathride58 opened this issue Dec 27, 2022 · 0 comments

Comments

@deathride58
Copy link
Member

deathride58 commented Dec 27, 2022

As per the design doc, along with #12, there should exist a contract browser program for PDAs.

To illustrate how this would ideally look like, here's a UI mockup (not ingame):
Cit14ContractBrowser

The contract browser should be available through PDAs to anyone who isn't currently a part of a contract (For those who are, only the invite tab should show). When clicking the Join Contract button, the player should be shown a description of the contract's discipline level (with Task-focused, Relaxed, and Orderly corresponding to approximate RP levels; LRP, MRP, and HRP, respectively), along with an extended description written by the captain (if they would like to set up rules for their ship, for instance), and further details about the contract's current gig. In the detailed screen, players should be given a choice to either confirm that they wish to join the contract, or go back to the browser. The filter tab should allow players to search through all open contracts, with the ability to blacklist/whitelist specific ships (complete with category presets for quick filtering by type), change the sort order to any of the values listed on the right side of a contract entry, and define min/max filter values for those numeric values. By default, the contract browser should be sorted by the number of crew in a given contract (though in the unfiltered display, those that have bid for advertisement should be displayed above all other contracts, in the order of how much was put in. Details below). Invites should display more or less exactly the same information as in the standard contract browser, but with the Join Contract button being being replaced with a pair of accept/deny buttons.

To prevent griefing/hazing, only the true owner of a PDA should be allowed to interact with the contract browser aside from viewing info.

Additionally, the Join Contract button should change color in steps depending on how far the ship is away from the station, with the distance being correlated to the flight characteristics of the default personal shuttle (issue pending). Green should indicate a ship that's docked, yellow should indicate that the ship's nearby (personal shuttle can complete a round trip), orange should indicate that the ship's a moderate distance away (personal shuttle needs refueling to complete a round trip), and dark red should indicate that the ship is far away (personal shuttle cannot reach it without refueling on the way), For a touch of colorblind compatibility, the distance should also be displayed in text, and further distances should be visually darker (with near and docked being a similar luminosity, orange being a bit darker, and red being fairly dark).

When a character is in any contract (including the one they're a captain of), their main contract browser tab should be replaced with an active contracts tab, showing every contract that the character's in, just as they'd be displayed on the main contract browser, with all join buttons being replaced by leave buttons (though this should be replaced with a darker cancel button for the contract that the character's a captain of). When clicking the leave/cancel button, the player should be given a confirm/deny prompt.

When a captain purchases a ship contract, they should be allowed to choose whether the contract starts open (allowing anyone to join without asking), or closed (requiring the captain to manually invite crew). From the contract purchase menu, captains should also be allowed to write a description, an extended description, and name their vessel (with vessels having a random name if the name field is left blank). A captain opening the contract browser (automatically renamed to "Contract Settings") should be shown a settings menu, allowing them to set the open/closed setting of their contract, modify the descriptions (but not the name!), set whether the contract should automatically open/close when it exceeds/drops below the recommended max crew count (on by default), and more. The captain should also have an invite crew tab, showing a list of all active characters, with each entry also showing how many contracts a given character is a part of. This list should also display whether a given character is present at the Citadel, but should show no further location information. Captains should be allowed to filter the list based on those two bits of information. Clicking the "invite" button should immediately send that character an invite to the contract that the captain's the captain of, and gray out the button. If a character declines the invite, that character's invite button should remain grayed out for the next ten minutes (configurable via server cvar).

From the settings menu, captains should also be allowed to bid for the top position on the contract browser. This should pull exclusively and directly from the captain's thaler (issue pending) balance. This should be pooled into an "advertising budget" value, which shouldn't be refundable, and should not persist at all past a given contract's existence. Captains should be allowed to see a leaderboard of how much other active contracts (showing only the name of the contract's ship) have bid (even those currently closed). The positioning resulting from the advertising budget should not apply when browsing with a filter, though all contracts with an advertising budget should receive a background highlight (see mockup) everywhere they're displayed, with the captain being allowed to set the hue as they please.

The contract browser should be implemented as part of the MVP, as it directly allows for the drop-in/drop-out style of experience that crew members are intended to have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant