vgstation-coders / vgstation13

Butts
GNU Affero General Public License v3.0
265 stars 544 forks source link

Freeing up job roles automatically AKA "our detective wants quit, send us a new one" #12437

Closed gbasood closed 5 years ago

gbasood commented 8 years ago

I can't remember if I was talking to @clusterfack or @PJB3005 about this but basically the idea is that you'd have the ability for players to gracefully remove themselves from round.

I'm not entirely sure, offhand, how to execute this without fucking up. My first impression was

Potential problems:

Input is welcome, tagged discussion for a reason.

gbasood commented 8 years ago

Also https://wiki.baystation12.net/Cryogenic_Storage for reference

The-Albinobigfoot commented 8 years ago

You could have the 'shuttle' be filled with objects to block people from entering, while having the 'doors' to the shuttle be pods from sood's post but made to look like doors. The arrivals shuttle is inert so I don't see why this would pose a problem from a player's point of view.

A reverse arrival shuttle, essentially.

Shadowmech88 commented 8 years ago

You could make it be a "departure shuttle" that is actually an incineration chamber, like in Moon.

Also this kind of thing would make sense for an IAA to handle.

gbasood commented 8 years ago

We could have the "stamps" process instead just be some kind of automated fax system where centcomm allows/denies the departure based on whether they're an objective target? Metagaming may occur no matter how we handle that situation though

Shadowmech88 commented 8 years ago

Even if they ARE an objective target, the only possible objective would be "kill them" right?

Wouldn't a trip to the incineration chamber fulfill that?

It'd effectively be the same as a traitor getting greentext from their target suiciding.

gbasood commented 8 years ago

My immediate concern is revs, really. If the only head "quits" then the round is instantly over.

Shadowmech88 commented 8 years ago

Don't rev rounds usually end in 10 minutes or so anyway due to the entire crew bum-rushing the heads?

gbasood commented 8 years ago

Well there's still

revsquad

gbasood commented 8 years ago

We could just prevent heads from doing this and make them go the old-fashioned route and bwoink the mins. Or leave it unrestricted and see what problems pop up and fix those later.

Shadowmech88 commented 8 years ago

We could allow the heads to do this, but also make them bwoink the admins like they'd have to if they wanted to suicide and leave.

ghost commented 8 years ago

Whats so wrong with just suiciding somewhere? I'm pretty sure you get listed as Inactive or something when other players join and the slot opens a little (Maybe not for head roles but I've seen it for other ones when late-joining). Most of the time you end up in the morgue or somewhere on the floor on Medbay anyway.

gbasood commented 8 years ago

@Shadowmech88 sure @whorena The idea is that roles that might be vital to a station would be able to re-filled by players latejoining. So if all of sec goes braindead one hour into a multi-hour round, you'd be able to get new officers from latejoins instead of running out of sec officers, for instance.

kol1th commented 8 years ago

I like the idea of a suicide booth too

Megamaw commented 8 years ago

getting new mimes or janitors is A++ in my book

SonixApache commented 8 years ago

Kinda like the sleeper pods from baycode? While at it -- what actually governs the (active) number in the slot selection screen? Does setting people to deceased or inactive in the medical records actually do anything?

Shadowmech88 commented 8 years ago

I believe people are referred to as inactive based on being braindead, catatonic, or actually dead. I don't think the medical records have anything to do with it.

I could be wrong, though.

Exxion commented 8 years ago

I'm pretty sure it's the medical records. Otherwise that would be a fantastic metagaming tool.

Shadowmech88 commented 8 years ago

But who even updates the medical records?

Exxion commented 8 years ago

Few people. That's why the names basically always all say active.

gbasood commented 8 years ago
    for(var/datum/job/job in job_master.occupations)
        if(job && IsJobAvailable(job.title))
            var/active = 0
            // Only players with the job assigned and AFK for less than 10 minutes count as active
            for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 * 60 * 10)
                active++
            dat += "<a href='byond://?src=\ref[src];SelectedJob=[job.title]'>[job.title] ([job.current_positions]) (Active: [active])</a><br>"

So if the mob has a mind, a logged in client, their mind's assigned role is still their job title, and their inactivity is less than something like 10 minutes, they show up as active.

Although I think goonchat broke inactivity.

Meaning they're inactive if:

That last one mostly only occurs when they get a new body as far as I can tell

ammy55 commented 8 years ago

The good thing about the cryopods that our current system doesn't handle is that stores whatever equipment you had on you when you leave the game. Instead of the current system of "find your predecessors corpse and hope you have spares of whatever's been looted already".

Chronakai commented 8 years ago

Wasn't there a thing where the HoP could open slots as well, or was that on another codebase

Iamgoofball commented 8 years ago

we have that at tg, yeah @Chronakai

just make suicide booths

MadmanMartian commented 5 years ago

This was completed by the requests console