I received some great savefiles showing some errors and had a chance to work on them. Here is the result:
- Added a few more ego item types to the list of items that should be *ID*’d, since some items can have extra powers and resists. The ones added were slay and kill dragon, might, power, & lordliness.
- The defense maneuver of detect_invis() was missing the sorcery spell of Sense Minds in the defense activation.
- Aesthetic fix to the layout of the ^zd Spell Dump output.
- Improvement to how the borg was calculating the benefits of using Teleport Other on large groups of monsters which can create a lot of danger.
- There was a ‘drop off potions’ loop. The borg was heading to town but not dropping off the potions in the house.
- Borg was over confident in his ability to tunnel. There is a definition of BORG_DIG which is his digging skill. I was moved from 20 to 40 to make sure the borg didn’t waste too much time trying to dig improbable tunnels. Granite has a dig factor of skill_dig > 40 +rnd(1600). So even with a BORG_DIG of 40, and no digger, he is still likely to dig. This value might be adjusted higher (to 60)
- The borg found a really nice artifact broken dagger. The bonuses of the randart attributes out-weighed the penalty of wielding one. So i boosted the penalties for melee type characters. The non-melee characters can still wield these items with the old penalty.
- Borg_flow_vault() was missing a borg_flow_clear() object. This lack caused the borg to think that he could dig tunnels all day long.
- Borg was incorrectly parsing the staff charges of “3 Staffs of Foo (3x 4 charges).” He thought he only had 4 charges instead of 12.
- The borg was over-rewarding the value of certain activations. The error was related to the scanning of equipment in borg_power_aux3() and looping a reward.
- The borg was ignoring ‘The Greater hell magic mushroom were-quylthulg’ when should only be ignoring ‘The greater hell-beast.’
- Added support for GF_STUN and GF_TURN_EVIL in borg_launch_damage_one(). I made sure the GF_STUN is not considered valuable if the monster is compromised from some other effect (confused, afraid).
- Amberites were having trouble with mutation activations. The borg had the wrong address for his mutations (b instead of c).
- Added better support for Amberite racial activations including a borg_recover() check for hallucination.
- The borg needed to weigh the benefits of casting Brand Weapon. Some are very expensive in terms of mana. The no_melee guys won’t bother with casting it. He also needed to make sure he didn’t cast/rest loop.
- Some improvements and clean-ups to how the borg works with dispel spells with varying AoE radius.