Shopping Fix for 341

The borg selling stuff to the shop needed two fixes.

  • The borg might try to sell rings to a full shop, even when the pval of the rings do not match.  I had to add a check there.
  • The borg was not considering the new max_stack amount and he might try to over-sell to a shop.

 

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

341 seems pretty stable

It looks like most of the major issues with porting the borg to 341 are resolved.  I made a couple of minor changes the past few days.  I will move onto the 350 version of the game real soon.

  • Smarter use of the backup_swap() routine.  He was not wanting swap out his armor which was granting RConf even though there was no immediate threat of a confusion attack.  I added some checks to make sure he checked the immediate threat of certain types of attacks.
  • Added some cures for Stun inside of borg_heal().  Those checks used to only be in borg_recover().  Borgs have been dying to Stun latey.  This is new to 341.  I think Stun was amped up a bit in recent versions.
  • Plasma hounds were added to the list of scary monsters if the borg does not have RSound.
Posted in Angband (Vanillia) | Tagged , , | 2 Comments

Special Characters in Unique Monster Names Fixed

  • Borg was losing track of monsters if they were standing on an item.  He might focus in on the item instead of the monster.  Since the monster would not be loaded into the monster array, he would not fear the monster or attack it.  An easy fix; he will process monster-wanks before take-wanks.
  • On those maze dungeons, the Dev-Team used FEAT_PERM_OUTER to line the inside of the maze instead of FEAT_PERM_INNER (which is used in vaults).  The borg did not understand that he was in a maze-vault, so he would not rest-to-recharge correctly.
  • Messages featuring unique monsters with special characters in their name (like Smeagol) were not being identified correctly because the game remembers their name as Sméagol.  This would induce regional_fear.

 

Posted in Angband (Vanillia) | Tagged , , | 1 Comment

Enchanting Loop and a Home Stack Size Fix

I am getting really close to solving the loops issues introduced with 341.  I have a paladin borg playing at depth 98 right now.  He is doing well.

  • The borg was looping at searching a chest.  I added a modulus check.
  • A high level paladin borg was in a loop buying a +0 set of boots then enchanting them to +12.  He’d then sell them and buy another set of boots and repeat the process.  It wasn’t a bad plan for making money, but he had plenty at that time.  The bug was related to the reward for carrying the ability to enchant.
  • The borg was thinking that a mimic chest needed to be searched before he could attack it.  The word ‘chest’ was throwing him off.
  • I forgot to add the MAX_STACK_SIZE to CCW storage in the home.  He was using three home inventory slots to store 90 !CCW.
  • Another fix to the sync issues.  I think the issue was with the cyan color of the “-more-“.  There are still a couple more issues that I can’t seem to find.  I suspect there is a key_flush() or something introduced.
  • The borg encountered another sync-issue and this one led to the rogue_like_commands being set to ‘true’.  I added a check in the code to make sure the right command set was selected.
  • Another sync issue.  This one was related the borg experiencing a normal failures while casting spells.  I added an “escape” keypress before each prayer attempt.
  • The enchanting needed another tweak on using the ‘/’ and skipping the inventory.
  • Testing ‘Tunneling’ a door instead of Bashing one for a few months.  Bashing can leave the borg paralyzed.

 

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

Important fixes for sync and Call Light

Very important fixes to help complete the 341 borg. After these fixes, the 341 should be working really well. I am still keeping a close eye on it each day, spotting buggy behavior.  The next major issue to tackle is the failure of the unhook.  Frequently, when the borg is combat, tapping the keyboard will not unhook the borg.  This can be a real problem if the screensaver-borg was running.

  • The borg has been getting out of sync with the game quite a bit with version 341. I have not traced down the source. He must be making a keypress which is not expected under certain circumstances. I found one instance where the borg will indicated that he is dropping one item from a stack, but when he drops the last item he wants to indicated ‘1’ for the quantity. The game assumes only one is dropped so the 1 keypress gets him out of sync. There must be other situations like this and I’m trying to catch them.
  • Version 341 introduced a problem with the “-more-” message being cut to “-more”. This can be reproduced by k’rushing (squelching) the magic book of Incantations and Illusions. This upset the way the borg was parsing the screen and caused him to get out of sync.  I am pretty sure this was the source of the sync errors.
  • The borg was not illuminating rooms due to a port issue in borg_update_map(). He should have been using CAVE_GLOW instead of FEAT_LIGHTING_BRIGHT.
Posted in Angband (Vanillia) | Tagged , , , | 4 Comments

Another loop issue resolved.

Another important fix for 341. I am still correcting the porting problems which include bad spell address, unhooks, loops, etc. I will be starting on version 3.5 next week.

  • Looping correction in the borg_defend_aux_panel_shift() and borg_wear_swap().
  • Better implementation of the squelch function.
  • The mineral veins are no longer considered ‘interesting’ if the borg will have to dig them.  They will still be interesting if he has Stone to Mud.
  • There was a shopping loop related to the money-scum shopping
  • The borg has been getting out of sync with the game quite a bit with version 341.  I have not traced down the source.  He must be making a keypress which is not expected under certain circumstances.  I found one instance where the borg will indicated that he is dropping one item from a stack, but when he drops the last item he wants to indicated ‘1’ for the quantity.  The game assumes only one is dropped so the 1 keypress gets him out of sync.  There must be other situations like this and I’m trying to catch them.

 

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

Borg update_map() fix.

  • Because the borg can’t crush items.  He was getting stuck in loops dropping ammo.  Whose idea was it to get rid of crushing and replace it with a flawed squelch?  I’d like to see how a person is supposed to squelch a partial stack.  Let’s say you have 20 arrows, and encumbered, so you decide to squelch 5 of them.  It can’t be done.
  • Another repair on how the borg chooses to enchant armour.  He sometimes needs to use the ‘/’ to skip the inventory.
  • There was an update_map() issue that was causing the borg to not correctly assign a monster to a wank.  A quick fix.  There may be lots of these little things showing up with the migration to version 341.

 

Posted in Angband (Vanillia) | Tagged , , | 1 Comment

Important Inventory Management Update

  • Deinscribe objects with {Quest} after being ID’d. And a fix to deinscribe.  It does not ask for a confirmation now.
  • Quest items were given a boost in value in borg_test_stuff() so he will be more likely to ID it.
  • Inscriptions needed a rework.
  • If the borg steps onto a pile of objects, the game was changing the event handler and forcing an unhook.  I had to work around it by using the key.mods.
  • Another repair to how the borg chooses items to enchant and ID.  The game chooser uses a fuzzy to skip the inventory if there is nothing in there to enchant.
  • Borg was undervalueing the activation effect benefit of the elemental rings.
Posted in Angband (Vanillia) | Tagged , , | Leave a comment

341 Inventory Updates

The 341 borg is at a point now that I can post it fully here and make a dedicated 341 borg page. There are still lots of errors, but it works reasonably well. Please report any errors.

  • Better implementation of the EFF_<effects> in borg_heal().
  • Support added for Ring of Open Wounds.  Hopefully, we will see some rogues and warriors carrying the rings and using the CSW effect.
  • The curse fear from Rings of Escaping won’t have a huge penalty for mages.  The penalty is for non-mages.
  • The borg would not consider new gear if his inventory full.  Since he spends so much time full, I changed that so he can swap his gear around even if he were full.
  • The borg was not swapping in a lantern while carrying several torches.  The combined value of the torch and all the fuel out-weighed the value of the light-radius boost.  Fixed that by reducing the value of the fuel.
Posted in Angband (Vanillia) | Tagged , | Leave a comment

Danger Update 341

This is another important update for the new 341 borg. It corrects a few major problems related to the borg sensing danger from melee attacks and some inventory issues.

  • The map-updating was over-writing some of the borg’s assumed grid features.  Problem with the f.f_idx
  • Activate_effect() needed to be told to E’at mushrooms.
  • Better recognition of a jammed door.
  • In porting the 320 borg code to the 341 several variables needed to be changed.  As part of that change, a bad formula had the borg consider all monster melee damage as 0.
  • Borg told not to dive deeper than depth 5 if his strength is depleted to 7 or lower.  He will be allowed to stay in shallow depths and wait for the town to restock Potions of Restore Strength.
  • Borg was trying to sell Ring of the Dog to the shop.  Shops don’t like that ring since it has -2 pval.

The source code can be found here.

 

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