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

Soulstones can now pull a random player if the target ghosts #10930

Merged
merged 5 commits into from Aug 3, 2015
Merged

Soulstones can now pull a random player if the target ghosts #10930

merged 5 commits into from Aug 3, 2015

Conversation

ghost
Copy link

@ghost ghost commented Jul 30, 2015

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

@PKPenguin321
Copy link
Contributor

👍 fuck people that ghost when they're killed by a cult

@WJohn WJohn added the Feature Exposes new bugs in interesting ways label Jul 30, 2015
@WJohn
Copy link
Contributor

WJohn commented Jul 30, 2015

👍 x 💯

@GunHog
Copy link
Contributor

GunHog commented Jul 30, 2015

The FUN has been INCREASED!

@Robustin
Copy link
Contributor

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.

@Jordie0608
Copy link
Member

A good change, but I'm not very fond of using BE_ALIEN for this.

@Fayrik
Copy link
Contributor

Fayrik commented Jul 30, 2015

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.
But if BE_WIZARD is that important, then have it work for either.

@Dorsisdwarf
Copy link
Contributor

BE_CULTIST isn't that overpopulated, so it's probbably fine to use

@Firecage
Copy link
Contributor

I am guessing it will use the same popup box as the other stuff? Aka we can accidentally press yes or no while typing.

@GunHog
Copy link
Contributor

GunHog commented Jul 30, 2015

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)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BE_CULTIST or bust.

@Core0verload
Copy link
Contributor

Why use random instead of pulling ghosted mind back?

@RemieRichards
Copy link
Contributor

@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.

@Core0verload
Copy link
Contributor

Then why don't use cloning-like "reenter your body" message?

@RemieRichards
Copy link
Contributor

@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
Copy link
Contributor

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)

@ghost
Copy link
Author

ghost commented Aug 3, 2015

@RemieRichards

Should be ready to merge now

RemieRichards added a commit that referenced this pull request Aug 3, 2015
Soulstones can now pull a random player if the target ghosts
@RemieRichards RemieRichards merged commit 7610097 into tgstation:master Aug 3, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Exposes new bugs in interesting ways
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet