Swap, cursed artifacts, selling to full shops

The borg was completely dismissing the value of the Wormtongue boots. They are not too bad for a low to mid range character. The only problem is the light curse. I had to rewrite a few routines to help the borg understand that they are of some value, once de-cursed.

The borg was mis-parsing the curse message “Oops! It feels deathly cold.”

Swap items will be giving addition value if they have an activation effect.

The borg was not selling items to a store if that store had a full stock.  But he was failing to consider that he could merge items into the store’s existing slots.

Posted in Angband (Vanillia) | Tagged , , | 2 Comments

Deep game fixes and a winner.

The borg was not keeping Rod of Speed or other Haste items because he has Tulkas in the inventory. I told him to keep Rods of Speed anyway in case he wanted to trade out Tulkas for some other more useful ring.

Warriors will collect Potions of Resist Poison in the home.

The elemental resistance for monsters was correctly aligned to /=9 instead of 0.

Fix for borg_scumming_pots. He was bouncing just a bit.

The borg was afraid to dive to depth 99 because Sauron was still alive. So the borg stayed on depth 98 for a while. The borg will not consider Sauron when checking for level preparedness.

Monster flow is considered in a few places. Most of the time, it is when the borg is waiting for the monster to approach, as in the case of anti-summon corridors. The borg was thinking that the monsters could dig through rubble.

The borg will not use Teleport Away on questor monsters. He is considered ‘all-in’ when it comes to questor combat.

Had a winner today. A half-elf warrior. This one won the game in record time. Something like 12million turns. I think that the next speediest borg win was close to 19 million.

Posted in Angband (Vanillia) | Tagged , , , | 2 Comments

Panel Shift improved.

I improved how the borg is going to shift the panel to locate off-screen monsters.  Before he did it based on his exact grid location.  This posed a problem if the screen size was altered from the default size.  Now, he will use a formula to calculate the best time to shift the panel.  He will also shift in diagonal directions, which can be a great help in rare circumstances.

The borg will try to store and use Rods of Speed over an equipment item of speed.   What happened was he was content using the artifact ring Tulkas for his speed activation and as such, he would not keep any rods of speed because his speed activation was already satisfied.  Really, it would have been better for him to keep the rod of speed and swap out the ring Tulkas for a different ring of power or even a ring of [element].

Posted in Angband (Vanillia) | Tagged , | Leave a comment

New anti-summon action.

I had to add a fix for the use of borg_shield and borg_stone.  There was some overwriting  of the borg_shield and the borg was not catching the message about the shield being enhanced.

The borg needed to be able to standardize his threshold for digging tunnels in order to reduce some flow bounces.

I made a new behavior.  The borg will wait in a hallway for a summoner to approach him.  He will carefully check the hallway and just stay in place until a summoner approaches him.  This can help him reduce the frequency with which he has to fight summoners out in the open.   This behavior had to be carefully coordinated with the digging of anti-summoning corridors.

The One ring (13) was being handled correctly.  He tried to junk it and then refused to wear it.  He didn’t like the curse on it.

Improvement to how the borg can calculate benefit if wearing a ring on the right hand, when he already has one on the left.

Improved the speed table. Borg will value Speed less if he has +20 and has speed effect (like Tulkas, or a rod of speed).  This can allow him to diversify he equipment more and wear elemental rings instead of always going for =Speed.  Once he gets up to +30 speed, there is not much benefit to going to +40 hastened.  This way, he will hover about +20 and move to +30 hastened.

Posted in Angband (Vanillia) | Tagged , | Leave a comment

Beam pathway improvement.

There was a problem with the borg always forcing the grid under ghosts to be wall grids.  This was a problem when the borg had to calculate danger from monsters behind it.  Now the borg will not override the previous knowledge of the grid.  If it had been an unknown grid, then it will be turned into a wall grid.

Fixes for wear_stuff().  The borg will try to avoid swapping in gear if he is encumbered.  He really avoids swapping out gear that does not have Strength bonus.  There was a problem if he had a +STR ring on the left hand.  He would not consider swapping in a new ring to the right hand.  That was repaired.

The borg needed to be able to calculate the effect of beam spells beyond their intended target.  He has always been able to find out the effect on grids leading up to the target but he always stopped at the target.  He will now consider the effect beyond the target along the beam’s intended path.  The borg will not cheat to know if walls are in the way of the beam.  The major effect of this change will be in how the borg calculates the effect and benefit of using Teleport Other.  Mistakenly, the borg would cast Teleport Other on a monster in front of a unique, but then those behind it would be teleported also.

Improvements to how the borg saves the *Healing* pots.

Small fix to how the borg will create a tunnel to a summoning monster.  There was a short loop.

Posted in Angband (Vanillia) | Tagged , , , , | Leave a comment

Changes to help Warriors

Rod of teleport other was not being considered a source for tportother in borg_skill[].  And better handling of its use as a defense option.

Borg will not carry *Heal* if he has several Heal.  He will save them in the home which will protected them from cold attacks.

Dropping crappy artifacts in crush_hole() needed`some improvement.

Dont junk unid’d =speed

Some digging changes the other day, upset the vault excavation if a borg did not carry a shovel.  This induced a lot of bouncing.

Stacks of rods will now have a pval = quantity of charged rods.

Borg will rest until all the healing rods are recharged.

Weapon_swap still being considered even if the borg.txt variable said not to use swaps.

Banishment effect is rewarded for Warriors and Rogues.  This will encourage them to use Celeborn.

Decrease in value of RBlind for Warrior and Rogues if they have ESP.

When “junking junk,” certain staves are considered junk only when depleted of charges.

Posted in Angband (Vanillia) | Tagged , , , , | Leave a comment

Potential Crash, Danger, and !Resistance

There was a potential divide by zero error if the borg attacks a monster with 0 armor class.

Warrior borgs had been told to stop carrying !RFire and !RCold after depth 80.  That was done to conserve inventory slots, but it turns out they really need those pots if they do not have an activation for Resistance.

The borg was over calculating danger from certain speed class monsters with ranged spells.  Essentially, he was counting the danger of the monsters ranged attacks, even though the monster did not have LOS to the borg.  The monster needed to have a narrow speed margin, so this was not caught for a while.

The borg is rewarded for wearing items that contain a certain activation.  The reward for wearing Bladeturner was not being added.

Warriors are giving a higher reward for wearing an item that grants Resist All.

The borg was not being rewarded for the activation component of the elemental rings.

The had not been checking his second ring slot when looking for activation rings.

No loading the quiver with arrows if threatened.  The borg tried to load some arrows which he found on the ground.  Kronos was standing right next to him.

Borg_crush_junk() needed some help.  It is now ok to crush {magical} boots, and not ok to crush {ego} items.

Corrected a typo from the other day.

A rod of teleport other is not considered as junk (and won’t be crushed) by warriors

 

Posted in Angband (Vanillia) | Tagged , , | Leave a comment

Heal, =Escape, and LATIN1

Borg was wearing a Ring of Escaping and the fear curse was really messing up his ability to flow.  There is now a greater negative value associated with wearing a Ring of Escaping.

A bit of a rework on borg_heal().  He was not healing as often as he should have.

In borg_danger(), two improvements were added: one for full_damage, and a better estimation of Monster’s chance to hit, based on AC protection.

Updated the % hit chance for Borg vs Monster as well.

Fix for the LATIN1 names.  The borg was having trouble relating messages to known monsters.  Sometimes the message bar would read “Angamaite hits you.”  Yet the borg did not know of a monster by that exact name.  The monster’s real name is Angamait[“e].  So I had to build a converter into the message parser.

I have not yet seen any trouble with parsing and comparing artifact names that contain special characters (Bastard Sword of Eowyn).

 

Posted in Angband (Vanillia) | Tagged , , | Leave a comment

More Rubble Trouble at clevel 10

If the borg was clevel 10, he might have some trouble with flowing and tunneling.

The borg was trying to stack unid arrows into a full quiver.

Borg will be rewarded for carrying a backup Rod of Magic Mapping

 

Posted in Angband (Vanillia) | Tagged , | 3 Comments

Everburning Fix & itoa()

Everburning Torches or Lanterns have a timeout.  Which the borg saw as a need for a recharge.  He was resting to recharge the Everburning items.

It looks like the itoa() I used the other day needed some help for other platforms.

 

Posted in Angband (Vanillia) | Leave a comment