Implementing the restructure changes

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

    There are a few problems with effect descriptions.

    - using "a" in all cases ("it fires a acid bolt")
    - random effects give funny descriptions ("it at random, fires a fire bolt, fires a frost bolt...")
    - wands and rods say "when activated" instead of "when aimed" (IIRC the boolean value is not set in obj_known_effect)
    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!

    Comment

    • PowerWyrm
      Prophet
      • Apr 2008
      • 2986

      Black and white DSM lost along the way their capability of breathing acid/cold and regained it after a while, losing their actual object power and dice value.

      Currently:
      - black DSM: power 11, dice 120
      - white DSM: power 10, dice 100

      Original values (well in fact the values from my variant, since the original values for DSMs were lower and they were all buffed in recent versions except for these two due to the fact that they were changed to balls instead of breaths):
      - black DSM: power 19, dice 150
      - white DSM: power 18, dice 150

      This bug is present since commit 4360edf (ages ago).
      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!

      Comment

      • PowerWyrm
        Prophet
        • Apr 2008
        • 2986

        While implementing the new atomic effects, I've found a potential bug and some redundancy:
        - objects have a list of effects and a base power
        - activations have a list of effects and a base power
        - artifacts have an activation
        - object power adds "effect" power, which is the activation power if the object has an activation, otherwise the base power

        The "potential" bug is adding the base power from objects, while the "effect" power should only consider the activation. The reason why the bug is only "potential" is because object_power() is only used for wearable items (if it was used for all objects, you would use a power of 20000 for stat potions for example, leading to prices of millions of gold for them...); for other items, the base price is used.

        A good way to fix this and simplify a lot of the code is to add an activation to activatable items (rings, rods, DSMs) instead of a list of effects:
        - add an "act" line for objects that have a "time" line in object.txt and remove the "effect" line + other dependent lines (same way as in artifact.txt)
        - parse the line
        - affect base activation to object when created
        - only use activation power in object_power() if the object has an activation

        This way you can remove object base power in object.txt and in the object structure.

        Side note: ego items got a list of effects at the moment. It's unused and I don't see how it could be (unless ego potions and such are added). In my variant, I have added a Cloak of Lordly Resistance (from MAngband) that can be activated for resistance, so I replaced that list by an activation and applied the changes above. It could be a good idea to do the same in V.
        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!

        Comment

        • Nick
          Vanilla maintainer
          • Apr 2007
          • 9637

          Originally posted by PowerWyrm
          The "potential" bug is adding the base power from objects, while the "effect" power should only consider the activation. The reason why the bug is only "potential" is because object_power() is only used for wearable items (if it was used for all objects, you would use a power of 20000 for stat potions for example, leading to prices of millions of gold for them...); for other items, the base price is used.

          A good way to fix this and simplify a lot of the code is to add an activation to activatable items (rings, rods, DSMs) instead of a list of effects:
          - add an "act" line for objects that have a "time" line in object.txt and remove the "effect" line + other dependent lines (same way as in artifact.txt)
          - parse the line
          - affect base activation to object when created
          - only use activation power in object_power() if the object has an activation

          This way you can remove object base power in object.txt and in the object structure.
          This sounds sensible, and I probably could have already tidied up the activation/effect business a bit more. I have taken the position of messing with the power calculations as little as possible, largely because I keep wanting to change stuff in it

          Originally posted by PowerWyrm
          Side note: ego items got a list of effects at the moment. It's unused and I don't see how it could be (unless ego potions and such are added). In my variant, I have added a Cloak of Lordly Resistance (from MAngband) that can be activated for resistance, so I replaced that list by an activation and applied the changes above. It could be a good idea to do the same in V.
          I added the capability for egos to have effects because I'm assuming we're going to want some. None yet is just because nothing has changed yet.

          As for the dragon armour, I have just left it as in 3.5.1. Exact numbers are something I'm planning to revisit too.
          One for the Dark Lord on his dark throne
          In the Land of Mordor where the Shadows lie.

          Comment

          • PowerWyrm
            Prophet
            • Apr 2008
            • 2986

            I'm currently reviewing the change with the "wonder" effect. I'll post here the errors I find on the way.

            - effect "confuse_monster": the player level was passed as parameter for confusion power, now it's omitted so I suppose it uses the "wonder" dice instead

            - effect "*destruction*": was using "destroy_area" (destruction), now it's "EARTHQUAKE"

            - rarest effect has a "slow" part and a "sleep" part: before, power for "slow" was 20 and power for "sleep" was player level; now it's zero (or omitted)
            Last edited by PowerWyrm; June 16, 2015, 16:17.
            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!

            Comment

            • PowerWyrm
              Prophet
              • Apr 2008
              • 2986

              Code:
              static bool effect_handler_ATOMIC_DESTRUCTION(effect_handler_context_t *context)
              ROFLMAO
              I wonder what could be handled here...
              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!

              Comment

              • Nick
                Vanilla maintainer
                • Apr 2007
                • 9637

                Originally posted by PowerWyrm
                Code:
                static bool effect_handler_ATOMIC_DESTRUCTION(effect_handler_context_t *context)
                ROFLMAO
                I wonder what could be handled here...
                Yes, it was sad to see that one go

                Those wonder things were all just errors, and also led me to notice that I had missed the dice for the Wonder spell in two of three classes... I also just set the sleep part in the rare effect to 40 - very slight gameplay change, and certainly not worth the effort to make it exact.
                One for the Dark Lord on his dark throne
                In the Land of Mordor where the Shadows lie.

                Comment

                • PowerWyrm
                  Prophet
                  • Apr 2008
                  • 2986

                  Originally posted by Nick
                  Yes, it was sad to see that one go

                  Those wonder things were all just errors, and also led me to notice that I had missed the dice for the Wonder spell in two of three classes... I also just set the sleep part in the rare effect to 40 - very slight gameplay change, and certainly not worth the effort to make it exact.
                  Looking for more Wonder errors:
                  - "speed monster" effect was using a parameter (dice) of 100
                  - "heal_monster" effect was using a parameter (dice) of 4d6
                  - "poly_monster" effect was using a parameter (dice) of player->lev
                  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!

                  Comment

                  • Nick
                    Vanilla maintainer
                    • Apr 2007
                    • 9637

                    Originally posted by PowerWyrm
                    Looking for more Wonder errors:
                    - "speed monster" effect was using a parameter (dice) of 100
                    - "heal_monster" effect was using a parameter (dice) of 4d6
                    - "poly_monster" effect was using a parameter (dice) of player->lev
                    man, that code was rubbish. I think they're all done now.
                    One for the Dark Lord on his dark throne
                    In the Land of Mordor where the Shadows lie.

                    Comment

                    • PowerWyrm
                      Prophet
                      • Apr 2008
                      • 2986

                      Originally posted by Nick
                      man, that code was rubbish. I think they're all done now.
                      You just interverted haste monster (100) and heal monster (4d6)
                      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!

                      Comment

                      • Derakon
                        Prophet
                        • Dec 2009
                        • 9022

                        Originally posted by PowerWyrm
                        You just interverted haste monster (100) and heal monster (4d6)
                        I like it better that way, actually. Make it basically a full-heal, but also make the hasting not last all that long.

                        Comment

                        • PowerWyrm
                          Prophet
                          • Apr 2008
                          • 2986

                          The cure wounds spells now cure blindness and confusion... but how can you cast them if you're blind or confused?

                          Note that this is perfectly valid for my variant, because Priests and Paladins can project spells on others, so they can cure other party members' status ailments with their healing spells.
                          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!

                          Comment

                          • PowerWyrm
                            Prophet
                            • Apr 2008
                            • 2986

                            Here are some spell errors:
                            - the turn & dispel spells should be PROJECT_LOS_AWARE
                            - there's a copy/paste error for Dispel Undead, it uses TURN_UNDEAD flag instead of DISP_UNDEAD

                            More as they come...
                            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!

                            Comment

                            • PowerWyrm
                              Prophet
                              • Apr 2008
                              • 2986

                              The BOLT_AWARE and BOLT_STATUS effects apply on "debilitating" effects like confusion, slow, sleep, fear and such. For these the "value" passed as parameter is a duration or a power, but not damage. In 3.5 and before, there was no spell tip displayed, but now you get "dam 50" which is illogical.

                              This is also true for "Bedlam" which is a ball of confusion which doesn't deal player level damage, but uses player level as power for the confusion effect. This means adding a BALL_STATUS or BALL_AWARE effect to deal with it.
                              Last edited by PowerWyrm; June 19, 2015, 13:42.
                              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!

                              Comment

                              • PowerWyrm
                                Prophet
                                • Apr 2008
                                • 2986

                                Just found a very entertaining bug in my variant: the place_monster() routine checks if there is no monster on the spot where the new monster is to be placed with a call to square_monster()... but doesn't check if there is no player character. This leads to amusing situations where the monster is placed on top of a player character, making that character unseen and unable to move until the corresponding player leaves the game.

                                This problem may arise if the place_monster() routine is called without a proper check for empty space. In most cases, the caller will make a check (see place_new_monster_group -- check vs square_isempty)... but I'm not sure it's the case everywhere. A double check on the 4.0 source code would be useful...
                                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!

                                Comment

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