Ship's Duty Schedule
Hey Folks! Back to design tasks today, as I decided to tackle crew management.
I'm still a bit unsure where it's best to go next with features and content, but controlling crew is becoming more and more pertinent as we increase their agency. It's not sufficient anymore to assume any human on a ship is that ship's crew, as we might be at a station doing some shopping, or boarding a derelict for salvage. So there needs to be some concept of a team associated with the player.
Furthermore, that team should have some controls on it for things like who is doing what and when, where they are allowed to go, and whether they are removed from the team. That's where today's screenshot comes in.
I'm picturing there being a special interaction type "Invite to Crew" or similar, which acts as a way to designate a person as officially a member of the player's crew. The context of this will get figured out later, as will the potential answers the NPC might choose. But for now, that's how we get them onto this UI's list.
Once on this list, we have a few things we can do to control their behavior. The first is something familiar to anyone who's done shift work, scheduled a busy machine, or played Rimworld. The player can designate which activities a crew should do at each hour. And for now, that's either work, sleep, or free time.
There's also a toggle button for "Shore Leave," which controls whether that crew is allowed to leave the ship. Most of the time, this will be irrelevant. But in cases where you want your crew to remain on board, this allows some granular control over that. Especially handy when docked to an airless ship :)
Finally, there's a button to dismiss crew. Inevitably, there are going to be crew you don't like, or cannot afford, or for whatever reason, must fire. This is the official way to do that. (I suppose an unofficial way would be to lock them in an airlock and depressurize it, but that's a discussion for another time.)
So far, this is a pretty simple UI. I can imagine a few more widgets per line here at some point. But I think this covers the basics for now.
There's still a lot of work to do here, of course. None of this is hooked up to AI behavior yet. (Or even legitimate crew members.) There's no invite interaction. And there's no place to store this data yet, though I'm picturing that being a sort of "Company" class, in the sense that a ship's crew is basically a corporation.
Anyway, a lot of logic to add yet. Also, the mouse alignment seems really wonky on the hour toggle buttons. For some reason, it assumes the mouse pointer is offset to the right and down a bit. But I have a hunch this might be due to anchor points or pivots. More on that tomorrow, however.