[Announce] PosChengband 1.0.0

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • chris
    PosChengband Maintainer
    • Jan 2008
    • 702

    Originally posted by Djabanete
    Fantastic. Thank you!

    Edit: OK, wait, still confused. Having chosen "yes" for the "auto-destroyer leaves unknown good/excellent" options, I find that the auto-destroyer is treating the two kinds of items differently. I'm using

    !unidentified common weapons
    !unidentified common armor

    and I find that an Executioner's Sword {excellent} is squelched while a Robe {good} is untouched. Is this how it's supposed to work?

    Edit2: Of course, ideally I want to set "leave unknown {good} items" to No and "leave unknown {excellent} items" to Yes, and I want the Sword {excellent} to be left untouched while the Robe {good} is destroyed.
    Well ... Its been long enough now that you have already figured this out, right?

    I recommend turning off leave_excellent and leave_good. I will remove these options very soon (99% chance). Really, they complicate the way things work.

    At that point, you probably never want to do:
    !unidentified common weapons
    !unidentified common armor

    If you really want me to debug your initial scenario, I can. Its probably something obvious like forgetting that the order of lines in your preferences matters. In this case, you really better have something like:
    ~unidentified ego
    !unidentified common weapons
    !unidentified common armor

    If you had this instead:
    !unidentified common weapons
    !unidentified common armor
    ~unidentified ego

    then it would not work. Remember, it is the first matching line that is used. Once found, subsequent rules in your pickup preferences are not even considered.

    Comment

    • AnonymousHero
      Veteran
      • Jun 2007
      • 1393

      @chris: I'd like to submit a patch removing JP support completely, but I'd want to base it on the most recent code that you have in development. So: Could you please put it up somewhere source-control friendly?

      If you haven't decided on a version control system (VCS) yet, I personally don't much care which version control you use, but of course a Distributed VCS is probably preferable (Git/Mercurial/Bazaar, probably in that order according to popularity). Git has the lovely Github for hosting and Hg has bitbucket (which incidentally also supports Git).

      This will be done in a semi-automated fashion, but I'll still have to scan through ~50000 lines of diff just to make sure nothing's gone wrong with the automation, so I'd like to avoid having to do it more than once -- in case you have private changes relative to 1.0.23 and cannot apply the patch cleanly if I base it on 1.0.23.

      EDIT: Btw, we're talking about the removal of ~24 kLoC .
      Last edited by AnonymousHero; June 18, 2013, 05:36.

      Comment

      • chris
        PosChengband Maintainer
        • Jan 2008
        • 702

        Originally posted by AnonymousHero
        @chris: I'd like to submit a patch removing JP support completely, but I'd want to base it on the most recent code that you have in development. So: Could you please put it up somewhere source-control friendly?

        If you haven't decided on a version control system (VCS) yet, I personally don't much care which version control you use, but of course a Distributed VCS is probably preferable (Git/Mercurial/Bazaar, probably in that order according to popularity). Git has the lovely Github for hosting and Hg has bitbucket (which incidentally also supports Git).

        This will be done in a semi-automated fashion, but I'll still have to scan through ~50000 lines of diff just to make sure nothing's gone wrong with the automation, so I'd like to avoid having to do it more than once -- in case you have private changes relative to 1.0.23 and cannot apply the patch cleanly if I base it on 1.0.23.

        EDIT: Btw, we're talking about the removal of ~24 kLoC .
        Wow! OK, I guess I can finally breakdown and put PosChengband source someplace public. I'll investigate GitHub though it may take me a short while to learn as I have never used git before ...

        I have been slowly removing JP stuff by hand. At first, I spent a lot of time and effort keeping it around as I felt like I owed this to the code's Hengband heritage. But after this amount of time, the JP stuff is so far out of date and there is no way I could ever hope to maintain it. Plus, the conditional compilation really messes up the code's readability, IMO. There has to be a better solution for multiple language support ...

        Anyway, JP stuff manifests in many forms. Obviously, there are the #ifdef JP blocks which can be easily spotted. Less obvious are the T(...) macros, which I added when I first started with Chengband. Least obvious of all might be the external data files. Ideally, something like:
        Code:
        N:4:¸¸³Đ:Ã㿧¤Î
        E:Hallucination:Brown
        G:,:u
        I:80:4:500
        W:10:0:30:1:0
        A:10/1
        F:STACK
        D:$It makes you hallucinate when you eat it.
        D:¤½¤ì¤Ï¿?¤Ù¤ë¤È¸¸³Đ¤Ë¿¯¤µ¤ì¤ë¡£
        could be converted to:
        Code:
        N:4:Hallucination:Brown
        G:,:u
        I:80:4:500
        W:10:0:30:1:0
        A:10/1
        F:STACK
        D:It makes you hallucinate when you eat it.
        The parser code would need to change as well. And virtually every form of external datafile has some aspect of this as well.

        Comment

        • chris
          PosChengband Maintainer
          • Jan 2008
          • 702

          Originally posted by AnonymousHero
          in case you have private changes relative to 1.0.23 and cannot apply the patch cleanly if I base it on 1.0.23.
          I have made a few changes somewhat recently, and I think this will cause merge conflicts as, like I said, I've been removing JP stuff by hand slowly as I go. I can push what I have today, if that would help (You say your diff is automated ... So hopefully this would not cause a problem).

          Comment

          • chris
            PosChengband Maintainer
            • Jan 2008
            • 702

            A new version (1.0.24) is available here:

            * Sorcerers use Charisma for Eat Magic power.
            * Options for leave_excellent and leave_good removed.
            * Fixed bug with Cult of Personality (Level generation was using summon monster code to build certain packs)
            * Travel command (`) now respects delay option.
            * Monsters now pursue the player more aggressively (i.e., I increased the flow depth for monsters pursuing the player by 'sound').
            * Death Beasts no longer show up in nests (hounds or animals).
            * Monster regeneration caps at 400hp (was 600hp).
            * Liches gain Ice Bolt.
            * Player monster races now start with one flavorful virtue.
            * New normal player race: The Centaur. They are half human and half horse, of course. I decided that while they may wear body armor, they get reduced AC bonus since they may only equip the breast plate (upper body part). They do gain full resists and other bonuses. Also, they are unable to wear any boots, so effectively lose an equipment slot. To compensate, they gain extra attacks with their hooves and move with extra speed as they gain experience. They also have a Jump power that acts as a short range, line of sight Dimension Door.

            Comment

            • AnonymousHero
              Veteran
              • Jun 2007
              • 1393

              Yes, it's a bit unfortunate about "losing" Japanese, but without at least one person to maintain it, it's just going to fall further and further behind until it's purely a burden for no benefit. (I'm not sure exactly where on the cost/benefit curve it is right now, but without a maintainer it's probably best to just rip it out wholesale.)

              So, yeah, the process is mostly automated, but it requires some manual tweaking/tinkering along the way. I think it makes sense to start with all the #if JP (and related #define's) and then perhaps work through the data file bits more manually -- but perhaps even that can be automated to some extent.

              Comment

              • chris
                PosChengband Maintainer
                • Jan 2008
                • 702

                Github repository is at https://github.com/poschengband/poschengband.

                Honestly, I have no clue what I am doing So, before I do irreparable damage, I better find a tutorial or something quick. For example, git seems to automatically add new files to the repo while mercurial required a user command to do this. I prefer the latter since I generally play out of my development repository and I don't want my savefiles (not to mention the executable!) automatically being added to the repository all the time.

                Any advice or recommended pointers are welcome!

                Comment

                • AnonymousHero
                  Veteran
                  • Jun 2007
                  • 1393

                  Originally posted by chris
                  Excellent, will have a look a little later!

                  Originally posted by chris
                  Honestly, I have no clue what I am doing So, before I do irreparable damage, I better find a tutorial or something quick. For example, git seems to automatically add new files to the repo while mercurial required a user command to do this.
                  git does too, though many tutorials tell you to "git add -r ." (or whatever) which *does* add everything indiscriminately unless you've previously created a .gitignore file. What you should probably do though, is to add appropriate rules to .gitignore to make sure stuff doesn't get accidentally added. (Or I can do that in a little while an submit a pull request -- it'll be a few hours though -- going to upgrade my hardware right about... now.)

                  Comment

                  • clouded
                    Swordsman
                    • Jun 2012
                    • 268

                    What are the ways to resist eldritch horrors? I know monster race jellies and demons, normal race demons(?), a demigod perk, any others?

                    Edit: Noticed that the description of monster race gold dragon starts with "bronze dragons are..."
                    Last edited by clouded; June 26, 2013, 15:23.

                    Comment

                    • chris
                      PosChengband Maintainer
                      • Jan 2008
                      • 702

                      Originally posted by clouded
                      What are the ways to resist eldritch horrors? I know monster race jellies and demons, normal race demons(?), a demigod perk, any others?

                      Edit: Noticed that the description of monster race gold dragon starts with "bronze dragons are..."
                      Let's see ... Demon races tend to be immune. Undead races tend to resist (They get an extra saving throw). Jellies are just too stupid to scare. Warlocks that make a Demon Pact gain immunity at CL30. And Demigods can pick the Weird Mind talent. So I think you had most of them.

                      Thanks for the description tip ... I pushed a fix to the github repository but probably won't be doing a new release for a while.

                      Comment

                      • Arjen
                        Adept
                        • Dec 2010
                        • 241

                        Some items don't show their details anymore when "I"nspecting. Like the "oMagi, you get the note that you don't see anything special, but it's not an "oAdornment.

                        Comment

                        • chris
                          PosChengband Maintainer
                          • Jan 2008
                          • 702

                          Originally posted by Arjen
                          Some items don't show their details anymore when "I"nspecting. Like the "oMagi, you get the note that you don't see anything special, but it's not an "oAdornment.
                          What version are you running? I seem to recall fixing this at some point, but I can't remember when.

                          The behavior for an amulet of the magi should be:
                          [1] Unidentified and Inspect: No info given.
                          [2] Identified and Inspect: Basic info given together with a message that the object may contain additional powers.
                          [3] *Identified* and Inspect: Full info given.

                          This is what I see in the latest, but I may be doing something different from you.

                          Thanks!

                          Comment

                          • Arjen
                            Adept
                            • Dec 2010
                            • 241

                            I was 2 updates behind at .22. Must have missed them. I'll check again when I see another one.

                            Comment

                            • Arjen
                              Adept
                              • Dec 2010
                              • 241

                              The issue I mentioned above might be only with stuff in the BM. 'Got' another "oMagi in the BM and it tells me again that it's nothing special. It even has ESP Troll (auto inscribe).

                              Comment

                              • chris
                                PosChengband Maintainer
                                • Jan 2008
                                • 702

                                Originally posted by Arjen
                                The issue I mentioned above might be only with stuff in the BM. 'Got' another "oMagi in the BM and it tells me again that it's nothing special. It even has ESP Troll (auto inscribe).
                                Thanks ... I can confirm the problem.

                                Its weird, though. I can't inspect an object generated in the BM. But if I buy it, then I can. And if I sell it back, then I can. Hmm ....

                                EDIT: OK. The problem is the player is not necessarily 'aware' of items in the shop, and this blocks revealing properties. I pushed a source code fix ... Do you think this warrants a new Windows executable? I'm trying to take a break for a bit
                                Last edited by chris; June 27, 2013, 14:34.

                                Comment

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