Borg bugs and feature requests

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • backwardsEric
    replied
    Originally posted by agoodman
    Really? I thought the randart at least used to be limited to the activation list of the original artifacts.
    Any activation from lib/gamedata/activation.txt is possible on a randart. As an example, see kineahora's bug report here, http://angband.oook.cz/forum/showpos...6&postcount=28 , about a randart that had the FOOD_WAYBREAD activation (not present on any artifact in the standard set). For the value determination in borg4.c:~4900, one might have special cases but then fall back to using the power field for the activation as the basis for the additional value of that activation. For tactical decisions about when to use an activation, that, in general, would require looking at the effects the activation invokes.

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    A randart could pick up the WAND_BREATH, DRINK_BREATH, or DRAGON_MULTIHUED, DRAGON_CHAOS, DRAGON_LAW, DRAGON_BALANCE, or DRAGON_SHINING activations. ...
    Really? I thought the randart at least used to be limited to the activation list of the original artifacts. I think the borg code might count on that. It's list of power bonus for artifacts ** is "has x activation, get y power bonus" and I think the list is from artifact.txt. If a random artifact can have any activation... well, any not on the list won't be used by the borg to start with. I don't think there are scenarios where he would try and get a crash but there certainly could be some I am not thinking of.

    ** see borg4.c around line 4900 under comment "/* an extra bonus for activations */"

    Leave a comment:


  • backwardsEric
    replied
    Originally posted by agoodman
    I think the borg activation code in general should be rewritten to be more generic. This likely has the same issue coming up with dragon breath potions and anything else that might have multiple activations. It doesn't look like any artifacts currently do but that could change in the future.
    A randart could pick up the WAND_BREATH, DRINK_BREATH, or DRAGON_MULTIHUED, DRAGON_CHAOS, DRAGON_LAW, DRAGON_BALANCE, or DRAGON_SHINING activations. All of those allow for selection of the type of element. In the standard objects, there's potions of dragon breath, wands of dragon's breath, multi-hued dragon scale mail, shining dragon scale mail, law dragon scale mail, chaos dragon scale mail, and balance dragon scale mail that allow for selection of the element.
    Last edited by backwardsEric; August 17, 2023, 18:27. Reason: all->allow

    Leave a comment:


  • agoodman
    replied
    I think forcing "a" till I can do a revamp of activations in general is what I should probably do to get a fix in relatively quickly and see if it also fixes the other issues. I have a feeling you are correct about it as a possible cause and they are connected due to it getting keypresses lost trying to activate.

    I think the borg activation code in general should be rewritten to be more generic. This likely has the same issue coming up with dragon breath potions and anything else that might have multiple activations. It doesn't look like any artifacts currently do but that could change in the future.

    Ugh.

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    A borg that's a level 7 rogue seemed to get stuck at the prompt for which spell to learn. According to the borg messages, it wanted to study "Stinking Cloud", but the only spell available is "Phase Door", option 'b'. Looking at how the borg responded to the prompt in the debugger, in one instance it responded with 'a' and in another 'd'. At that point I interrupted the borg, saved the game, and then reloaded and restarted the borg. After that, it had no problem learning "Phase Door".
    not sure what happened here. It should know which spells are learnable and it should be pulling what spells are available at what level from the game.

    btw, if you turn on borg_verbose it will tell you what keys it is pressing in the borg messages window if you want to avoid debug.

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    The borg has chaos dragon scale mail equipped. It seemed to have problems with the prompt about which breath to use (random ('a'), chaos ('b'), or disenchantment ('c')) after activating the armor, but unstuck itself somehow. It later got hung up again at the breath selection prompt. The borg is responding with '2' since it wants to melee the monster there (the last two messages in the borg message window are "Facing Itangast ..." and "Attacking with the weapon 'Mace 'Taratol' ...").

    I guess that borg7.c:4283-4288 should be changed. With the game as it is, it would be safe to reply with 'a' to choose a random breath if you don't want to fine tune the breath to the monster's weaknesses. Also the comment there about genocide is misleading, Banishment does not use EF_SELECT.
    Ah, this selection must be new or at least new in 4x. It used to be that chaos just did a random breath. I am not sure how easy this fix will be. I am going to have to look at all activations and see how to tell which ones require a selection plus I will need to make sure the calculations on which to use is right in the attack damage estimations.

    Leave a comment:


  • backwardsEric
    replied
    Level 7 rogue spell choice

    A borg that's a level 7 rogue seemed to get stuck at the prompt for which spell to learn. According to the borg messages, it wanted to study "Stinking Cloud", but the only spell available is "Phase Door", option 'b'. Looking at how the borg responded to the prompt in the debugger, in one instance it responded with 'a' and in another 'd'. At that point I interrupted the borg, saved the game, and then reloaded and restarted the borg. After that, it had no problem learning "Phase Door".

    Leave a comment:


  • backwardsEric
    replied
    borg and selectable breath weapons

    The borg has chaos dragon scale mail equipped. It seemed to have problems with the prompt about which breath to use (random ('a'), chaos ('b'), or disenchantment ('c')) after activating the armor, but unstuck itself somehow. It later got hung up again at the breath selection prompt. The borg is responding with '2' since it wants to melee the monster there (the last two messages in the borg message window are "Facing Itangast ..." and "Attacking with the weapon 'Mace 'Taratol' ...").

    I guess that borg7.c:4283-4288 should be changed. With the game as it is, it would be safe to reply with 'a' to choose a random breath if you don't want to fine tune the breath to the monster's weaknesses. Also the comment there about genocide is misleading, Banishment does not use EF_SELECT.

    Leave a comment:


  • backwardsEric
    replied
    Aim direction and resting

    The borg got into a state where, according to the messages window, it is "Resting to recover HP/SP ...", but the last command issued was to aim a wand of annihilation. So the game asks for an aim direction but the borg replies with "&" as if it was responding to the resting prompt. The check, at borg9.c:3013, for the direction prompt doesn't succeed because borg_confirm_target is false. The other conditions in that check are true. I don't know how it got into state. When I escape out and save, reloading the save and restarting the borg has it go along on its merry way.

    Not long after that, the borg got stuck again. It was on a down staircase on level 93. The last messages in the borg message window alternated between "Leaving via up stairs." and "Standing on dn-stairs". The game was asking for which wand to aim (only one choice available, a wand of annihilation), but the borg would respond with "<" as if trying to use an up staircase. Escaping out, saving, and then reloading the save and restarting the borg had it proceed.

    (It's possible that the cause for the second one is the issue mentioned in the next post. The borg did have chaos dragon scale mail equipped and it was charging so the 'a' for aim a wand may have dismissed the prompt for the breath to use but then the borg was left out of step with the game prompts. I can't say if it was also the cause for the first one as I don't know if borg had equipped the chaos dragon scale mail at that point.)
    Last edited by backwardsEric; August 17, 2023, 13:06. Reason: Addendums about stuck again and possible cause

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    In the borg status window under "Temp Effects", fast casting and heroism use the same line so the string that is displayed is "Heroismt" where the shading of the "t" at the end indicates the status of fast casting.
    Checked in a quick fix to this because it was easy. I think the status window probably needs some work. It likely doesn't have all the information it should have on it. I haven't really looked at it at all except to make sure it doesn't crash.

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    In the attached save, the borg is sitting at the entrance to the general store and repeatedly reading an Enchant Armor scroll but then breaking out of the selection for the piece of armor to enchant (at least for me, the borg will resume that behavior when I reload the save and restart the borg with ctrl-z and then z).
    Well, borg7.c "borg_enchant_to_h" is trying to read a scroll of enchant ... armor? That ain't right!

    Leave a comment:


  • backwardsEric
    replied
    In the borg status window under "Temp Effects", fast casting and heroism use the same line so the string that is displayed is "Heroismt" where the shading of the "t" at the end indicates the status of fast casting.

    Leave a comment:


  • backwardsEric
    replied
    In the attached save, the borg is sitting at the entrance to the general store and repeatedly reading an Enchant Armor scroll but then breaking out of the selection for the piece of armor to enchant (at least for me, the borg will resume that behavior when I reload the save and restart the borg with ctrl-z and then z).
    Attached Files

    Leave a comment:


  • agoodman
    replied
    Originally posted by backwardsEric
    ... we could update Makefile.inc now for those dependencies ...
    I think I am going to need to leave the updating of Makefile.inc to you or Nick. I would have thought it was getting the object list from BASEOBJS which comes from Makefile.inc and has BASEOBJS := $(ANGFILES) $(ZFILES) and ANGFILES is in Makefile.src with ANGFILES = $(ANGFILES0) buildid.o and ANGFILES0 includes the borg files... showing yet again that I don't really get makefiles.

    Leave a comment:


  • agoodman
    replied
    ok, I decided the bad cave issue was likely a "resurrection, then get back into borg code before the cave is refreshed". I added some code that will hopefully mitigate the issue.

    Leave a comment:

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