I’ve been working on the vanilla 341 borg as well as the Z240 borg for several months. Here are the fixes and upgrades:
Vanilla 341 borg:
- A hallucinating borg does not create new monsters. This can be a problem if the game starts with him having hallucination. He could actually start in a crowd of monsters but create no monster entries and subsequently assign no danger to the grids.
- Observe_kill_diff() was modified to that the borg can create monster entries if he is just starting out the game.
- Borg will not crush an equipment item if he has an empty slot which could be filled by that item.
- Borg was not wanting to equip a bow item into an empty slot if he was empty of ammo since the my_good_ammo was tval=0, and the new equipment as a real my_ammo_tval.
- There are new pain messages, death messages.
- Plural names are supported (mouse/mice, etc).
- Offset targeting will be skipped if the attack has the same result as a direct hit.
- Borg will prefer to shoot a closer monster if the rewards are the same.
- Flask of oil counts for double fuel for borg_prep purposes.
- Borg_sawp_ring() was missing a final borg_notice() after restoring all the original equipment. This omission lead the borg to miss certain flags of one of the rings.
Also fixed the borg_swap_ring() so that he can actually select which finger. In older versions of Angband, only the left finger was the target of a ring if both hands were full. - Borg will not borg_flow_kill() to a monster with distance <=3 if he has Fear or Curse Afraid.
- Couple of improvements to the munchkin mode related to the borg diving when encumbered.
- Borg_think_dungeon_brave() needed to be able to flow to any stairs, even down-stairs while not prepared. Not doing so, could induce twitchy behavior which is usually fatal.
- No ShootN’Scoot for rogues.
- Rogues need to be penalized for using bolt spells. He drains his mana which is needed for Phase and Teleport.
Zangband 240
- The zborg has certain routines to create a sea of runes. To save computation, he should not continue considering the routines if he does not have any way to cast the glyphs.
- The borg could fill up with items while in munchkin mode and forget to crush junk if he were off of a stair. The ‘be on a stair’ check was removed. He can now crush junk as long as it is a safe place.
- The might sometimes over estimate how far he could throw an item, thus leading to loops of ineffectual attack attempts.
- The borg_crush__() routines needed a fix related to the borg_wield_slot() calls.
- Borg_notice_aux1() had a typo related to monk speed calculations.