[3.5-dev] Targeting monsters detected by ESP

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • PowerWyrm
    Prophet
    • Apr 2008
    • 2986

    [3.5-dev] Targeting monsters detected by ESP

    Build 519-gdfad37b allows you to do that.

    Needless to say, it's very confusing. Now you will fire missiles, aim wands, cast spells and such at walls if the monster is in ESP range but not in LOS.

    I'd say it's quite dangerous too. Suppose you're in LOS of a monster that you want to target and there's something behind a wall that is closest... Pressing "'" will target the wall, not the visible monster.

    I don't see the point of this feature (you can use manual targeting if you want to target something out of LOS), but at least LOS should take precedence over ESP when targeting.
    PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
  • fizzix
    Prophet
    • Aug 2009
    • 3025

    #2
    I agree, this seems like a bug.

    Comment

    • Derakon
      Prophet
      • Dec 2009
      • 9022

      #3
      Maybe it was an attempt to fix the bug where you automatically know if a monster is in LOS? E.g. if there's a monster down an unlit, unknown passageway (in a cavern level, say), then you can learn when the monster enters LOS by continually trying to target it.

      If so, I think that leaving the bug in is less harmful than the current behavior, sad to say.

      Comment

      • Timo Pietilä
        Prophet
        • Apr 2007
        • 4096

        #4
        Originally posted by Derakon
        Maybe it was an attempt to fix the bug where you automatically know if a monster is in LOS? E.g. if there's a monster down an unlit, unknown passageway (in a cavern level, say), then you can learn when the monster enters LOS by continually trying to target it.

        If so, I think that leaving the bug in is less harmful than the current behavior, sad to say.
        I'd think it's pretty odd telepathy if you can't distinguish it from actually seeing the monster. Char knows when it sees the monster.

        But this again reminds me: we need to unify targeting and LoS. Targeting should follow LoS rule. Hockey stick should be impossible, but chess knight move possible: you do see the monster with that. If you see it you should be able to shoot it. It doesn't need to be "symmetric" IE: if you can see it, it can see you.

        Comment

        • DaviddesJ
          Swordsman
          • Mar 2008
          • 254

          #5
          Originally posted by Timo Pietilä
          But this again reminds me: we need to unify targeting and LoS. Targeting should follow LoS rule. Hockey stick should be impossible, but chess knight move possible: you do see the monster with that. If you see it you should be able to shoot it. It doesn't need to be "symmetric" IE: if you can see it, it can see you.
          If you want every hex on any path that you can target to be a hex that you can see (if lighting were sufficient), this is easier said than done. I don't know how to write a targeting algorithm that does that, without introducing other weird quirks.

          Comment

          • Derakon
            Prophet
            • Dec 2009
            • 9022

            #6
            Originally posted by Timo Pietilä
            I'd think it's pretty odd telepathy if you can't distinguish it from actually seeing the monster. Char knows when it sees the monster.
            The use case here is that the monster isn't lit up and isn't visible directly via infravision, so the character can't see the monster; they can only detect it via telepathy. And the path to the monster goes through unknown tiles that might have walls in them, and might not. It's really a pretty rare situation:
            Code:
            ######
            #@....            o
            #...##
            #####
            Can you target that orc? Is there a wall in the way? Who knows! If there isn't a wall in the way then the player ought to be able to freely target the monster to make ranged combat simpler, but that gives free information to the player about the state of the map.

            Like I said, this is pretty rare and any fix would probably be a net loss in terms of playability.

            Comment

            • DaviddesJ
              Swordsman
              • Mar 2008
              • 254

              #7
              Originally posted by Derakon
              Like I said, this is pretty rare and any fix would probably be a net loss in terms of playability.
              I think it's a pretty common situation and should be easy to fix. The targeting code should only select among monsters that the character can actually see (i.e., the ones that would be displayed on screen if ESP were off). The code can obvoiusly distinguish whether the character can see the monster, because it needs to know that to be able to determine whether to display it, when ESP is off.

              Comment

              • Derakon
                Prophet
                • Dec 2009
                • 9022

                #8
                I agree that it would be easy to fix. The problem is that IMO the game would be worse with the fix than without it. Fighting monsters that actually are targettable in such situations would become a pain, because you'd have to manually target them.

                You'd remove a source of free information that is only rarely abused (if you "see" a monster down an unlit corridor, you're going to either try to attack it regardless, or move out of LOS regardless), but that is needed to keep gameplay flowing smoothly.

                Comment

                • DaviddesJ
                  Swordsman
                  • Mar 2008
                  • 254

                  #9
                  Originally posted by Derakon
                  I agree that it would be easy to fix. The problem is that IMO the game would be worse with the fix than without it. Fighting monsters that actually are targettable in such situations would become a pain, because you'd have to manually target them.
                  It would be easy to add a single extra keystroke to toggle targeting to select *all* on-screen monsters, whether or not you have known LOS to them, or even if you can see that the LOS is blocked. This would actually be useful in other ways, too. Would that solve your problem?

                  In the diagram situation above, you don't need targeting anyway, you would (or I would) just fire in that direction.

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 9022

                    #10
                    Any extra keystroke would break "target nearest and fire" keymaps, including the builtin 'h' command. And it makes the (already-complex) targeting system even more arcane, all in the aim of removing a weird edge case.

                    Comment

                    • DaviddesJ
                      Swordsman
                      • Mar 2008
                      • 254

                      #11
                      I don't think we're really communicating well. With ESP on, there are several cases:

                      1. A displayed enemy that you can see and you have known LOS to.
                      2. A displayed enemy that you can't see but you have known LOS to.
                      3. A displayed enemy that you can't see and you have uncertain LOS to.
                      4. A displayed enemy that you can't see and you have blocked LOS to.

                      The targeting code could cycle by default only among group 1, or among groups 1+2, or groups 1+2+3. It seems rather strange for it to include group 4. If you want to include group 4, or anything that's not in the "default" targeting set, then you could have a separate keystroke for that. I don't think anyone thinks all displayed monsters, including group 4, should be in default targeting, right?

                      Comment

                      • Derakon
                        Prophet
                        • Dec 2009
                        • 9022

                        #12
                        No, we can agree there. I thought you were suggesting that group 3 be excluded as well, which is what I was objecting to.

                        Comment

                        • DaviddesJ
                          Swordsman
                          • Mar 2008
                          • 254

                          #13
                          Originally posted by Derakon
                          No, we can agree there. I thought you were suggesting that group 3 be excluded as well, which is what I was objecting to.
                          My impression was that the original complaint was about monsters in group 4 being automatically targeted. It might take some extra code to target monsters in group 3 but not in group 4, I wouldn't object to that being put in.

                          Comment

                          • Derakon
                            Prophet
                            • Dec 2009
                            • 9022

                            #14
                            Yeah, our entire tangent was caused by me speculating that group 4 was being included due to a bug in trying to exclude group 3.

                            I'll know better than to speculate, next time.

                            Comment

                            • DaviddesJ
                              Swordsman
                              • Mar 2008
                              • 254

                              #15
                              If people can agree on exactly what they want to happen, it probably wouldn't be that hard to write the code. The hard part is figuring out what you want.

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎