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

Dadiana Chacon doesn't trash itself if runner drops to 0c after trace #4012

Closed
ChooJeremy opened this issue Jan 30, 2019 · 2 comments
Closed
Assignees
Labels
bug card Card implementation-specific

Comments

@ChooJeremy
Copy link
Contributor

Reproduction steps

  • Runner has Dadiana Chacon installed
  • Runner makes a run
  • Runner hits an ice with a trace subroutine (i.e. surveyor)
  • Corp fires the trace
  • Runner spends all his credits on the trace

Runner is now at 0 credits. Dadiana Chacon isn't trashed. Even after the run finishes, Dadiana Chacon is still installed and runner doesn't take any damage.

Note:
The message XX trashes Dadiana Chacon and suffers 3 meat damage. appears, but nothing happens.

@NoahTheDuke
Copy link
Collaborator

Thanks for the report! I'll take a look.

@NoahTheDuke NoahTheDuke self-assigned this Jan 30, 2019
@NoahTheDuke NoahTheDuke added bug card Card implementation-specific labels Jan 30, 2019
@presheaf
Copy link
Collaborator

presheaf commented Feb 12, 2019

Just at a guess, I would think the problem is partially that Dadiana prints that it trashes itself when registering the event which is actually going to trash it, not when the event resolves - this is probably why you see the log message being printed but nothing happening. It can be fixed by moving the system-msg to a :msg in the registered event.

However, I'm not sure why Chacon doesn't actually trash himself. Maybe the event never actually resolves. I notice that Order of Sol accomplishes its effect by resolving an ability instead (It would be good to check that Order of Sol doesn't have the same bug, actually, but I think it won't.). This feels like a more correct way to do it, but looking at the blame it seems it was changed to an event to fix #3004.

Luckily for us, the new rules sequence actually fixes #3004 for us, as playing cards should now 1) move them to play area, 2) pay the play cost. So I think the way to fix this bug should actually be reverting Chacon back to resolving an ability, then modifying whichever of play-instant or complete-play-instant in rules.clj to pay the cost only after moving the event to the play area. I use "should" here because I think it would be perfectly acceptable to figure out why the trash Chacon event isn't resolving and making sure it does, but (famous last words) I don't think my proposed fix is too hard, and being compliant with the rules seems like a good thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug card Card implementation-specific
Projects
None yet
Development

No branches or pull requests

3 participants