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
Soulstones can now pull a random player if the target ghosts #10930
Conversation
👍 fuck people that ghost when they're killed by a cult |
👍 x 💯 |
The FUN has been INCREASED! |
Long overdue common sense change. Let's the cult grow without getting fucked by 3-4 ghosted sacrifices and keeps inexperienced players, who didn't know that they should stay in bodies when killed by cult, from being locked out of the round. Win for cult, win for cult victims. |
A good change, but I'm not very fond of using BE_ALIEN for this. |
BE_CULTIST is the flag we should be using for this, because regardless of who's doing it, shades tend to have a cult like gameplay dynamic. |
BE_CULTIST isn't that overpopulated, so it's probbably fine to use |
I am guessing it will use the same popup box as the other stuff? Aka we can accidentally press yes or no while typing. |
Consider using the notify_ghosts() system, providing a join link in the message. No pop-up, zero risk of getting AFK players, and respecting preference flags is optional. (bans must still be respected, however - make sure banned people do not get a notification!) Edit: The only problem is that it might be a bit iffy to use in time-sensitive situations like this. |
|
||
|
||
/obj/item/device/soulstone/proc/getCultGhost(obj/item/device/soulstone/C, mob/living/carbon/human/T, mob/U) | ||
var/list/candidates = get_candidates(BE_ALIEN) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BE_CULTIST or bust.
Why use random instead of pulling ghosted mind back? |
@Core0verload incase the person who ghosted did it on purpose, they don't want to play, so grab another ghost who probably does want to play. |
Then why don't use cloning-like "reenter your body" message? |
@Core0verload because that player DOES NOT WANT TO PLAY, if you gave them that message and button, THEY WOULD NOT FOLLOW IT. this is not to get people who accidentally ghosted back, it's to get someone who's actually willing to play the gamemode. |
ghost = pick(consenting_candidates) | ||
if(C.contents.len) //If they used the soulstone on someone else in the meantime | ||
return 0 | ||
if (T.client) //If the original returned in the alloted time |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this if and else can be condensed down to:
if(!T.client)
T.client = ghost
for(var/obj/item/W in T)
T.unEquip(W)
init_shade(C, T, U)
qdel(T)
Should be ready to merge now |
Soulstones can now pull a random player if the target ghosts
If the target mob ghosts, using the soulstone gives ghosts with the appropriate flag a chance to opt in with one of those "Do you want to play a Shade, please choose quickly!" messages.
The new ghost pull be put in control of the corpse, and then turned into a shade (so they'll retain the name of the original target mob).
This applies to the sac rune as well.
Flag is currently BE_CULTIST