Difference between revisions of "Forum:The YANI about throwing to an arbitrary direction"

From NetHackWiki
Jump to navigation Jump to search
(Better scheme of the change of hitting)
(my opinion)
 
(3 intermediate revisions by one other user not shown)
Line 7: Line 7:
 
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.
 
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 crosses the edge (excluding vertices) between two tiles (excluding the origin and the target):
+
Each time the ray/projectile enters a tile occupied by a monster:
** If one of the tiles is occupied by a monster:
+
* For a projectile, it has a chance of hitting that monster rather than the target.
*** 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).
*** For a ray, it has a chance of hitting the monster.
+
* The "chance" mentioned above are determined by the Euclidean distance between the trajectory and the center of the monster's tile.
** If both of the tiles are occupied by monsters:
 
*** For a projectile, it may hit one of the monsters with a distributed chance.
 
*** For a ray, it has independent chances of hitting the monsters.
 
** The "chances" mentioned above are determined by the length of the overlap between the trajectory and the monster's tile.
 
* Depending of the type of the ray/projectile, if it hits a wall, it will stop at the lastly traveled tile, or it will reflect/ricochet back.
 
  
 
Of course, it would not so look nice on the TTY interface. Could be cool on graphical interfaces tho.
 
Of course, it would not so look nice on the TTY interface. Could be cool on graphical interfaces tho.
  
 
--[[User:NDos|NDos]] ([[User talk:NDos|talk]]) 07:39, 25 November 2022 (UTC)
 
--[[User:NDos|NDos]] ([[User talk:NDos|talk]]) 07:39, 25 November 2022 (UTC)
 +
 +
: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]]. --[[User:Darth l33t|Darth l33t]] ([[User talk:Darth l33t|talk]]) 01:00, 29 November 2022 (UTC)

Latest revision as of 01:00, 29 November 2022


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.

--NDos (talk) 07:39, 25 November 2022 (UTC)

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)