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

Eigenstasium overdose removes implants #62661

Closed
antropod opened this issue Nov 8, 2021 · 7 comments · Fixed by #63708 or Skyrat-SS13/Skyrat-tg#10487
Closed

Eigenstasium overdose removes implants #62661

antropod opened this issue Nov 8, 2021 · 7 comments · Fixed by #63708 or Skyrat-SS13/Skyrat-tg#10487
Labels
Bug Correct Functionality Needs Reproducing Nobody will fix your issue unless you do this

Comments

@antropod
Copy link
Contributor

antropod commented Nov 8, 2021

Reproduction:

Implant yourself with any implant.
Overdose yourself on eigenstasium, wait for it to start teleporting your items (around 10 minutes, or cycle 50 of eigenstasium status effect (it starts at -250)), lose all your implants when your items teleport away.

I think bug is in the code for picking items to teleport away from you:

var/items = owner.get_contents()

@timothymtorres timothymtorres added the Not a bug This should just be a list of closed issue reports label Nov 8, 2021
@timothymtorres
Copy link
Member

//phase 4
if(EIGENSTASIUM_PHASE_3_END to INFINITY)
//clean up and remove status
SSblackbox.record_feedback("tally", "chemical_reaction", 1, "Eigenstasium wild rides ridden")
do_sparks(5, FALSE, owner)
do_teleport(owner, get_turf(owner), 2, no_effects=TRUE) //teleports clone so it's hard to find the real one!
do_sparks(5, FALSE, owner)
owner.Sleeping(100)
owner.Jitter(50)
to_chat(owner, span_userdanger("You feel your eigenstate settle, as \"you\" become an alternative version of yourself!"))
owner.emote("me",1,"flashes into reality suddenly, gasping as they gaze around in a bewildered and highly confused fashion!",TRUE)
log_game("FERMICHEM: [owner] ckey: [owner.key] has become an alternative universe version of themselves.")
//new you new stuff
SSquirks.randomise_quirks(owner)
owner.reagents.remove_all(1000)
var/datum/component/mood/mood = owner.GetComponent(/datum/component/mood)
mood.remove_temp_moods() //New you, new moods.
var/mob/living/carbon/human/human_mob = owner
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "Eigentrip", /datum/mood_event/eigentrip)
if(QDELETED(human_mob))
return
if(prob(1))//low chance of the alternative reality returning to monkey
var/obj/item/organ/tail/monkey/monkey_tail = new ()
monkey_tail.Insert(human_mob, drop_if_replaced = FALSE)
var/datum/species/human_species = human_mob.dna?.species
if(human_species)
human_species.randomize_main_appearance_element(human_mob)
human_species.randomize_active_underwear(human_mob)
owner.remove_status_effect(STATUS_EFFECT_EIGEN)

It appears this is intended. See the PR that created Eigenstasium at #56918. The final phase spawns a new randomized mob so you lose your implants since the old body is deleted.

@antropod
Copy link
Contributor Author

antropod commented Nov 8, 2021

Okay I'm using this next time to delete return implant from abductor scientist

@antropod
Copy link
Contributor Author

antropod commented Nov 8, 2021

Can you point at line of code where old mob is deleted? All I see is quirks reroll and appearance update, old mob is not deleted

@antropod
Copy link
Contributor Author

antropod commented Nov 8, 2021

@Thalpy is this intended?

@timothymtorres
Copy link
Member

After a 2nd lookthrough it seems

Stage 4 - replaces your character with an alternative reality version of yourself.

Doesn't mean the original mob actually got deleted. Just the appearance, mood, and quirks were randomized. None of these should have affected implants from the original mob, at least not from what I can tell.

@timothymtorres timothymtorres added Needs Reproducing Nobody will fix your issue unless you do this and removed Not a bug This should just be a list of closed issue reports labels Nov 9, 2021
@antropod
Copy link
Contributor Author

antropod commented Nov 9, 2021

Mob cloning is not affecting implants, stage 2 of addiction is what affecting them. When it picks random item to teleport away, it looks into mob .contents and picks random item. Implants are stored in mob .contents as well, so it has chance to teleport implant away. This also reproduces with items like armblades on nightmares, or other items that can't be dropped normally.

@tralezab
Copy link
Contributor

eigenstasium needs to remove items that it should not teleport

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Correct Functionality Needs Reproducing Nobody will fix your issue unless you do this
Projects
None yet
3 participants