January Updates for Zborg
- Borgs in munchkin mode needed to use the borg_eat_food_any() function.
- Non-food-eating borgs needed to finish the borg_eat_food_any() function, they were failing out before the potions (which do provide some nourishment points).
- If a borg was in the middle of a town move and became twitchy, he would forget about being in the move, then loop in the forest. As part of the twitch, he would forget all his acquired knowledge of the level, thus forcing him to relearn everything— breaking the twitch. Forgetting that he was in a move can be fatal, so it was corrected by not allowing him to reset all his knowledge if he was in a move.
- Added a new borg_skill[] variable called BI_NOEAT which will replace all the calls to borg_race() for the races which do not eat regular food.
Added a new borg_skill[] variable called BI_VAMPIRE which will help clean-up the code related to the blood-sucker race and mutation.
- The Domination spell won’t be given any points if the monster is already affected.
Since the borg wont enchant items that are not ID’d, I told him not to buy enchant scrolls for an item that’s unID’d
- Improvements to how the borg will calculate the need to illuminate the dungeon rooms. Including a bugfix in borg8.c
- “growls angrily” needed to be added as a pain response.
Some help to the borg fighting under boosted_bravery and when fighting in a stressed munchkin mode.
- The borg was missing a few of the pain messages monsters make. This lead him to believe that some attack pathways were not effective.
- Borg won’t flow_kill in town unless clevel 15 or a hungry vampire.
- Just started to implement the Spectre’s passwall ability. He currently knows that he can flow through walls if he is fleeing a level. He can also flow though rubble and doors.
- Munchkin starters will not carry the Phase Door scroll until a bit later.
Recharge scrolls will be carried by munchkin starters if they carry a wand of MM or Stinking Cloud.
- Recharge function did not recharge wands. Now, it will do certain wands. It will also recharge items with are unID’d and “{empty}”. Doing so helps low level borgs survive because they need wands of MM.
- Wands won’t be used to attack town monsters until clevel 15.
- For spectres, doors are not considered “interesting” for purposes of dungeon exploration if he has already walked through it.
- Since spectres are allowed to flow through rock, even rock right next to a open floor grid, there is a modest flow penalty for choosing the rock. The penalty should keep him choosing open floor over rock if the distance cost is the same.
- The borg will no longer save the game when he dies. This will help with debugging since I can have the borg replay the steps which lead to the buggy behavior.
- The borg uses a variable-length leash to stay close to stairs when exploring the dungeon. That leash has just been shorted for certain race/class combos. The leash had been clevel*3+9. It will be clevel*1+9 for weak combos.
- Borg will not be allowed to sell his last wand of MM (even if it is empty), until clevel 20 or so.
- If the borg is escaping the dungeon and (1)has nothing of value to sell, (2)has enough food, then he won’t risk exploring town. Instead he will just re-enter the dungeon.
- When in munchkin mode, the borg will be allowed to perform some immediate selling — as opposed to having to visit all shops before selling.
- The enchant to hit and enchant to dam scrolls will not be purchased by low level high mages. The do not use their weapons much and their money is better spent elsewhere.
- The borg will not purchase weapons that have an enchantment until he is at least level 35 if he is a primary spell caster.
- Munchkin Mode will be allowed to use borg_crush_hole(). This will allow him to upgrade the items he is selling. We would not want the borg to pass up a wand of MM lying on the floor because he failed to crush a Slime Mold.
- When determining the value loss of a crushed item, the borg was not figuring the value of a whole stack. When he crushes an item, he crushes the whole stack so the value needed to consider the total value of the stack.
- While using the passwall ability, the borg will not attempt to flow to a recovery grid to heal the damage induced by passwalling.
- While using passwall, the borg will attempt to use a heal spell to repair some of the passwall damage. He will try to heal just before he exits the walls.
- The borg will now estimate which items were dropped from a unique or questor monster. He has not yet learned how to apply that to his inventory. So for now, he just knows that an item on the ground might be better than average.
- In munchkin mode, the borg will wait until he returns to the stairs before doing certain mid-level functions, like resting to recover, ID’ing, crushing, etc.
- In munchking mode, the borg will only pick up items which are found on depths with are at least maxclevel – 10. This will keep him from filling up with leather gloves from depth 1 when he is clevel 15.
- Borg_projectable() needed to be modified to allow for a passwall borg sitting in a wall or door grid.
- Rubble is not considered ‘interesting’ if the borg has passwall.
- Passwalling will be limited to borgs with ESP. It is far too dangerous to run through walls without knowing where the monsters are.
- Passwalling can lead to the borg sitting in a wall while fighting a monster on a floor grid. This will lead to the borg taking damage from the walls. Now the borg will sacrifice his attack and step out of the wall to fight on floor grids.
- The borg will not perform certain low-reward defense maneuvers in sitting in a wall grid.
- If the borg recalls down to dungeon, then engages the munchkin mode, he will behave normally (and sanely) until a stair is located, then he might make decisions which could lead to an early death. He skips borg_caution(), for borg_think_dungeon_munchkin(). I set a rule so that if the stair is further than 18 grids, he will exit munchkin mode and stay with the safe mode until he gets closer to the stair.
- The defense spell of Bless won’t be used if the borg is high mage, mage, or mindcrafter.
- The borg will no longer add the fear_region[][] to the total fear of a grid when considering the danger of a grid for purposes of determing a Phase Door escape. The regional fear is fear of an area based on an invisible monster. Since the phase will still keep him in the same region, there is no benefit for using the fear_region[][].
- The borg likes to collect attack rods, but he won’t carry too many if his strength is low.
- The borg was not keeping correct track of his last several steps. The borg does remember his last 75 steps, and he uses that information for calculating several things.
- Sometimes the game will not allow the player to switch places with a pet. The borg is careful to not step into a grid with a pet and mistakenly attack it. Accommodations needed to be added to play_step() to make sure the borg does not loop if the pets won’t move out of the way.
- More efficient use of the town enchanting shops. Borg will loop inside the shop until he gets all the enchanting done, instead of only enchanting 1 point then leaving. Which is what he was doing before.
- The borg will be rewarded slightly higher if he uses a sleep attack or a slow attack on monsters if the borg is in a hallway. This will allow him to setup a strategic retreat.
- I started the first stage of doing more accurate monster flow patterns. This can be helpful in planning escapes and knowning if a monster can actually get to the borg. Think of a line of orcs in a hallway and the closest one is asleep. The ones stacked up behind are not a threat to the borg.