Forum:The YANI about throwing to an arbitrary direction
The Yet Another New Idea page mentions a SMOP saying "rays and projectiles can be fired at an arbitrary target square, not just vertically, horizontally and diagonally." As such, I had a few thoughts about how it would be implemented.
Basically, treat the level as a Euclidean grid of squares, and treat the ray/projectile to be traveling from the center of the origin tile to the center of the target tile.
Each time the ray/projectile enters a tile occupied by a monster:
- For a projectile, it has a chance of hitting that monster rather than the target.
- For a ray, it has a chance of hitting the monster (and go through).
- The "chance" mentioned above are determined by the Euclidean distance between the trajectory and the center of the monster's tile.
Of course, it would not so look nice on the TTY interface. Could be cool on graphical interfaces tho.
- NetHack already implements a line algorithm to enable jumping, so there's no need to implement another for arbitrary targeting. My concern is with what it would do to game balance. If you gave arbitrary targeting to players, you'd have to give it to monsters too, or else it would be too easy to shoot them from positions where they can't fire back. But then you'd get situations like a whole squad of orcs pelting you with their poisoned arrows at once. It would also trivialize throwing gems to unicorns, even before you were invisible. As for intersection chance being based on Euclidean distance, that's something players would want to know about before firing, and there doesn't seem to be a reasonable way to communicate it in the TTY interface.
- My opinion is that straight-line targeting is a strategy that adds depth to the game by giving you a degree of control over what monsters can attack you at a given time; removing it by implementing arbitrary targeting wouldn't be an improvement. Then again, I also mourn the loss of 3.4.3-style hit and run. --Darth l33t (talk) 01:00, 29 November 2022 (UTC)