Dragon Darts has a variety of mechanics that I don't care to fully
write unit tests for, but this commit should track its in-game
implementation much more closely.
If anyone still has a Dragon Darts interaction that this implementation
handles incorrectly, they should confront me about it.
Fixes#6279