I wanted to get an update for the vanilla borg. I have not been able to get the latest (351) to compile but at least the 341 will be working a little better.
- Minor fix for resting as an attack mode.
- Current knowledge requirement for attacking lifted if it is a never_move monster
- Added support for all the branded arrows.
- Sanctuary spell not used if clevel > 15 and in town.
- Correction for how the borg calculate the as_position. The for-next loop was going to <=24 when it was supposed to be < 24.
- Kill->summoner added in order to clean the code a bit.
- borg_fighting_questor added to the list of other borg_fighting_<special type>. This allows the borg to select special equipment.
- kill->questor flag is independent of kill->unique. This will allow for future game support for level-specific quest monsters like Z.
- Replaced the borg_fighting_unique + 10 = questor with with borg_fighting_unique && borg_fighting_questor
- unique_on_level == <hard coded number> were replaced with IDX_<MonsterName>. Just cleaning up hard-code numbers.
- borg_wear_swap() created. It will consider a swap item in order to increase damage while fighting a particular type of monster.
- Added the borg_position & (position_sea | position_summ | position_bore) bits.
- Added the borg_depth & (DEPTH_BORER, etc) bits.
- Added a borg_count_summoners which will keep count of the number of summoners on a level. If the level becomes overrun with summoners then the borg will leave that level.
- Added borg_skill[BI_NSRANGED] which will count the number of non-spell ranged attacks. It is used in calculating the best time to use the teleport away spell.
- Converted the old RACE_MORGOTH to IDX_MORGOTH
- Mages will not be given points for carrying a swap weapon which gives a bonus to melee attacks. Previously, only mindcrafters did this.
- The borg will not be allowed to crush his rod of recall to make space for an item he wants to pickup.
- The use of the Shoot’N’Scoot will be limited if the borg is in a anti-summon corridor.
- The borg was crushing scrolls of Acquirement (if he was at full inventory).
- Reduced the tremendous bonus for spell casters reaching 0% fail rate. It was too high.
- Added a couple more cases which will limit the borg’s intereptation of the monster’s expected flow pattern. RF1_FRIENDS like to ambush in rooms, etc.
- Made sure that the borg was not going to swap out his inventory for non-id’d stuff that clearly wont improve his station. If he has a known unique, he should not trade out for a {good},{excellent}, or {terrible} item.
- Removed the fear_regional[][] from borg_danger() if the borg is deeper than depth 70 (it had been 80).
- Don’t sell wands of stone to mud if one does not have this spell. This will help with anti-summoning corridors.
- NO_MELEE guys will no longer consider the damage of a weapon when calculating the benefits of a swap item or storing weapons in the home.
- The NO_MELEE borgs were not calculating their damage correctly when fighting barehanded.
- I added a ‘borg_fighting_tele_to’ flag for monsters who can teleport the player. It is mainly kept in the munchkin code. We don’t want the borg to be teleported off of the stairs.
- Speed up the borg by adding a kill->dist so the borg does not have to keep calculating distance(c_y, c_x, kill->y, kill->x)
- The borg learned some extra qualities to certain curing potions (removing confusion and blindness). Doing so enables him to be rewarded for carrying those items for that specific property.
- The borg will have reduced fear of confusion and blindness attacks if he has at least two items which can cure him. Previously, he needed to have resistance to blindness or confusion to avoid the fear.
- The borg might bounce on a few munchkin levels for several thousand turns waiting for a restock() item to show up (depth 5 & 6). I tied the climbing to the borg_leave_level() flag of goal rising, that way he is inclined to complete a journey.
- I taught the borg to use Create Stairs while he is in munchkin mode.
- To save computation time on the expensive borg_prepared(). I switched to using a borg_prepared[127] which stores the prep info.
- Still tracking down some of the ‘Illegal choice’ tags.
- borg_defend_lightbeam() was not considering 3-way intersections as a possibility.
- borg will use Teleport Level to escape a level 1 danger if on a depth with >= 10 summoners.
- I created a borg_surround_breeder() and an escape for when the borg is surrounded by breeders. He will use Teleport to get away from breeders.
- The borg needed to lighten the requirement for RPois to include the resistance offered through reliable spells. This allows him to free up that equipment slot requirement.
- Slight change to how the borg will ‘grab’ things:
- Borg wont grab spell books from the shops to store in the house. He will still store extra books, but won’t by the books.
- Borg won’t grab weapons from the shops to store in the home. He has plenty of those in the dungeon.
- Borg won’t grab non-potion/scroll things after reaching clevel 50.
- Borg wont set explosive runes/runes of protection when fighting a guy who can use Teleport-to. These guys can bampf the borg off the rune.
- when considering which items to crush (slow/hole/junk), the borg will skip items which contain a high resist which the borg is currently lacking.
- In an effort to dive deeper and play at his maximal safe-depth, he will use the munchkin mode and scum the stairs more.
- Borg_crush_slow() will now not crush Rods of Teleport Other. The other two borg_crush_xxx() already saved these rods. Similarly, the borg will not sell a Rod of Teleport Other to the shop unless he has more than 5 of them.
- A borg with no light and no cash could become twitchy in town. He will be allowed to sell some items (which he would not normally like to sell) in order to raise cash to buy torches/oil.
- Reworked the ego ammo a bit to clean up the code.
- Solved a Twitchy issue by adding a prep_check flag to the borg_flow_stair_more(). If false, it will ignore the basic preparation checks before taking a down stair.
- Borg was looping a bit while flowing to a take. He would retreat one step then re-attempt the flow path. The retreat function from borg_caution wont be used if the goal == GOAL_TAKE
- Slight change to the munchkin mode to help him dive better without being subject to the restock() restrictions.
- Borg needed to not remove an empty lantern from the equipment. It interfered with him buying fuel. Additionally, he needed some support for buying fuel for the empty lantern. His inclination was to buy a new lantern. Since fuel is cheaper, its better for him to buy fuel for the empty lantern.
- The borg will now quaff a potion while junking junk, if the potion wont harm him. He can gain any bonus effect or nourishment (albeit small on both accounts). A check was applied in borg_quaff_potion() to make sure he doesn’t drink something nasty.
- Encumbered borgs will no longer unequip their gear. They tend to crush it.
- Borg wont use the Recharge spell on rods while in munchkin mode. The rods tend to recharge faster than the mana spent on the spell.
- Added a cascade reward for using the rods as weapons. He used to carry up to 10 rods, sometimes even up to 9 Rod of Light. Really, he doesn’t need more than 5 of them. So he will limit the number of rod quantities in order to make more efficient use of inventory space.
- Borg was over confident in his ability to tunnel. There is a definition of BORG_DIG which is his digging skill. I moved it 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.
- Added a kill->cautious but it is not yet implemented. It will be used when flowing to certain monsters
- Converted borg_ddy_ddd[24] to a [48]
- Borg was slighting miscalculating the projected path of a monsters bolt attack with respect to the bolt passing through other monsters.
- Borg needed to be able to crush_junk() which is now dropping it on the floor, while in muchkin mode. He tries to avoid dropping items onto non-floor grids since they fall near the borg. He will just pick them up again. But since he is in munchkin_mode, and will be leaving the level via stairs then its no problem to litter the floor with junk. But doing so requires that all floor grids be labeled at junk.
- Slight easing of some cure requirements for level preparation. Since the cure potions now do a percent heal, the borg can use some substitution techniques to satisfy the requirements.