January 9th, 2016

  • borg_best_combo() was returning a crash from a report of the item description if the item was being pulled from the home.
  • The Amberites need to know that the level has changed when they use the Shadow Shifting ability.
  • If a borer monster was in a vault, and not able to flow to the borg, then the borg should not create a sea of runes and wait for the borer.
  • Sometimes we will see the borg fire several missiles or spells into a monter that has total cover from a wall. The game’s pathing routine is called project_path() but it also uses mmove2(). The borg used mmove2() for both needs. The two objects are not returning the same results so the borg believed that his path/aim would strike the target, but in project_path(), it would take a slightly different path and could catch a wall, thus stopping the path. I have switched the borg’s pathing to use the project_path() in the attack routines. So he should stop looping on this missed shots.
  • A crash related the use of Meteor Swarm was reported.
  • A randart with an activation might induce an inscribe loop if the item were “charging”
  • Some item inscriptions were not being recorded properly. This happened it the item had a super long name. So the borg will not inscribe an item if the item’s name is over 65 characters long.
  • Another slight rework of path guessing for bolts and beams. Fix in borg_lauch_bolt_aux().

 

 

Posted in Zangband 240 | Tagged , , | 2 Comments

Screensaver for V341 updated

There was a couple of problems getting the vanilla 341 screensaver working.  I had to make a couple of changes to the game code.

  1.  Main-win.c in WinMain() about line 5449
  2. Cmd-misc.c in do_cmd_try_borg() about line 109

I’ve tested it in my windows 7 machine and it seems to work now.  Please report any problems.

 

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

Back to School Updates

Summer break is over and it’s time to update the borg.

  • The wrong routine was being called when the borg looked for an item with the earthquake activation. He should look to see if he equipped an item. Instead, he was actually activating the item.
  • the borg was resting on a shop door waiting for recall to engage. I fixed most of these calls last time, but at least one more instance remained. This one was related to a ‘,’ call in borg_think_dungeon().
  • Borg was still thinking about buying a TV_SWORD for the house.
  • The mutation attack of BF_MUT1_SHRIEK had a distance of 10, it should have been 8.
  • Borg was being surrounded by 4 guys, one of which was Bluecoat with an AC of 98. The borg had a to_hit chance of 95 but was not inclinded to attack Bluecoat. I had to fix the formula by removing the 95% cap and allow the swing attempt for summoners/quest/uniques.
  • Added a borg_defend() maneuver for branding of the weapon. The borg already did some weapon branding, but not as a specific defence maneuver.
  • Borg needed to cheat his inventory prior to checking the borg_flow_special_shops. He needed to redefine some of his variables after considering all the permutations of the equipment.
  • Added code for the FEAT_BLDG_HEAD features.
  • Try not to use ShootN’Scoot if fighting a summoner. Scooting just gives them another round with which to summon more guys.
  • Adjusted the danger() calculations so that his % Saves will reduce his fear of certain spells. The Harm spell does 10d15 damage. But if the borg has 75% saves, he should not fear the spell 150 points. At best it ought to be about 50 fear points.
  • The borg was incorrectly adding additional danger points if a monster was faster than him and had spells. Essentially, the spell danger was being added again.
  • Dont use the Bless defense spell if fighting a summoner. We want to use the turn to deliver damage and deny the monster the chance to summon more.
  • Monster Haste spell should not create too much danger().
  • Monsters which can teleport-to do pose some risk to the borg since they can follow him through his teleport. But the fear was at 800, which was way too high. I set the fear equal to the monsters HP.
  • Now he will not teleport-away wimpy mages with only 50 hp.
Posted in Zangband 240 | Tagged , , | Leave a comment

Small Vanilla 341 update

  • I added the enchant scrolls to the list of consumable items. So instead of junking scrolls, he will at least attempt to enchant an item in the inventory/equipment.
  • in borg_lure_position() and borg_flow_kill_1(), which are both related to allowing the borg to move into an anti-summoning corridor, the needed to make sure that two particular grids were not both open floor grids.
  • Added a take->crap to better track the items that need to be dropped onto the floor since k’rush doesn’t work right. Also, crap items will not clear the flow goal.
  • Since flasks of oil are heavy and the borg is much better an scumming stairs, he will not be required to carry so many of them. He will carry from 1-5 flasks, instead of up to 10.
  • Borg_flow_old() needed to very slightly penalize digging so as to prefer walking on floor grids.
  • Improved the calculations for anti-summon spots.
  • Borg had to learn if his level was a Labrynth level and then treat that level in a special way (no shoot-n-scoot maneuver)
  • Tiny clean up for the borg’s unhook and recognizing if a keypress was made.

 

Posted in Uncategorized | Leave a comment

Vanilla 341 Update

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.
Posted in Angband (Vanillia) | Tagged , | Leave a comment

April 22, 2015 updates

  • Potential crash from Meteor Swarm calculation fixed.
  •  Adjusted the damage on certain death spells and corrected the mana cost penalty.
  • For some reason, I was thinking the beastman race got a discount at the cure-mutation guy. Evidently not. The borg was getting stuck in a shop loop because he had less that $5k and was trying to fix some mutations.
  • There was a slight keypress hang-up with using Midas Touch. Plus I added a minimum value of 5 to an item since we only get 1/3 back in gold. The money should be worth the mana investment.
  • Borg was missing a mutation activation failure notification. They being with “you’ve failed” but all the spell failure messages begin with “you failed.” Catching these notifications is important in order to flush the keypress queue.
  • Melee-centric guys should avoid casting a bolt on adjacent monsters. (except the incapacitation ones or vamp.)
  • An equipment inscription loop could happen on randarts that the borg tried to crush.
  • Major fix to the way the borg calculates the fail-rate on spells. He was mistakenly thinking that all spells used INT to calculate fail rates. This only became evident when a WIS using spell caster with really low INT tried to cast a spell. The borg believed that he could not do it. That bug has been in place for about 14 years. Wow.
  • Borg got lost in the wilderness when trying to move from town 1 to town 3. He needed help learning how to get back on path.
  • Improvements to how the borg calculates damage and to-hit chances with arrows.
  • Borg will be more likely to enchant his arrows. He used to wait until he was clevel 35.
  • Made Remove Fear a higher priority for the non-NO_MELEE guys.
  • Added the Death spell of Berserk to the list of items granting Remove Fear.
  • I had to add the store doors to the list of ‘dont rest on these grids.’ When he rested on them, he would enter the shop.
  • The specialty shop doors had to be added to the list of special doors in borg_update_map(). FEAT_SHOP_HEAD, FEAT_BLDG_HEAD.
  • borg_target_unknown_wall() needed some help placing ‘wall’ grids on the unknown grid.
  • The borg_position & POSITION_SUMM needed a tiny correction for an outside position floor grid being visable.
  • The ‘recently_worn’ flag was not being reset in the borg_best_stuff_aux(). So the next item in the check was inheriting the flag from the previous item.
  • Increased the offset-attack scan from -1..1 to -2..2 This will help with bolt attacks.
  • Needed to alter borg_danger() so that it considers the fear which one monster imposes on another. Not always fear the monster imposes on the borg. There are times the borg wants to know how much fear/damage will be dealt to him if he steps on a grid, but sometimes, he is curious about how much fear/damage a pet/friendly imposes onto monsters. But the current borg_danger() considers the players attributes and skill set.
Posted in Zangband 240 | Tagged , , | Leave a comment

Trump Tower and depth > 85

  • Add support for the Inn. The borg will buy food if he finds himself there. But the borg does not purposely flow there (yet).
  • Added more shops to the list of ‘mistakenly entered shop’ routine.
  • Borg needed a borg_notice() added before the borg_power() in borg_remove_stuff(). He was missing a few of his borg_skill[] flags because of it lack and it induced some odd equipment changes.
  • Borg might remove his known good bow for a random xbow if he happens to find bolts on the ground and he is out of arrows. Fixed that.
  • Added support for the borg to be able to deliberately flow to the Inn if he is hungry in town.
  • Fixed unhook issue defense maneuver of genocide_nasties.
  • Fixed an infinite loop with trying to remove a cursed ring when trying to wear a new ring.
  • Fixed a loop with the borg trying to flow to a recover grid in town.
  • Fixed a potential loop with the borg trying to flow to a recover grid when a spell caster (like a rogue) had 0 max mana.
  • Retreating into a wall for safety while passwalling needed an adjustment.
  • Borg_surrounded() needed some help with borgs who can use Passwall.
  • Improvement to missing path calculation/estimation in borg_launch_bolt() and borg_launch_bolt_aux()
  • Borg will be more likely to use the Teleport Other spell if he is waiting for recall to engage.
  • The Death spell of Malediction and the MC power of Neural Blast are radius 0 ball effects, not bolts. So sometimes the borg would offset-target the monster knowing that the bolt would hit. But actually, these two spells would miss since they are not bolts. The borg needed to know that for these two spells, no offset-targeting is allowed.
  • Minor fix for some non-eating borgs who got stuck in the Inn.
  • Certain low level borgs with low strength would loop on wielding a weapon.
  • Taught the borg how to use the Trump Tower for recalling and jumping to certain levels.
Posted in Zangband 240 | Tagged , , , , | 2 Comments

Pi Day Updates

 

  • Mass Genocide was unhooking due to bad spell address (wrong realm) located in the defense call.
  • A no_rest_prep count was added to borg_brand_weapon().  He would often cast, then rest to recharge his mana.  During the rest, the branding would expire.
  • A recent change in using BORG_VIEW messed up the targetting code for vault excavation.  Borg_projectable() needed to be put back in there.
  • Added the death spell of Enslave Undead to the list of attacks.
  • Borg was looping a tiny bit on inscribing quest items.  Fixed it by erasing the quest object from the good_obj_xxx[] in borg_item_analyze().
  • The death realm vampirism spells were given a higher reward if the borg had suffered a HP loss.  This is to influence the use of the spell for its healing property.
  • Added Death Realm Orb of Entropy to the list of offset ball spells used in borg_defend_aux_rest().
  • Placed the Death Realm spell of Battle Frenzy before the Berserk spell in defense maneuvers.  BF has haste, while B does not.  It does cost a bit more mana though.
  • The ACT_MAP_LITE timeout was too long to be useful for a light source so it was removed from the list of items granting BI_ALITE.  That will cause the borg to carry a rod of illumination.
  • The borg will carry up to 2 rods of illumination but not more than two.  They are heavy and quick to recharge.
  • Borgs will not crush Rod of Illumination if they have no other source of Call Light.
  • There was some minimal shop-looping with wands and staffs (probably due to the pval).  So the list of recently purchased items will handle wands/staff differently.
  • When in Berserker Mode, the borg wont be able to ‘push past’ pets, so he will not be allowed to flow through them.
  • Improvements to how the borg calculates the value of charming monsters.  The value increases if other monsters are near the to-be-charmed monster.
  • I had to add a couple of pain messages that were missing (“is immune!” and “resists!”) and one kill message (“evaporates!”)
  • GF_DEATH_RAY is virtually harmless to uniques.
  • Added a BI_AGENOCIDE and will use to when deciding whether or not to flee the level due to out-numbered nasties.
  • Reordered the use of death realm mass genocide and omnicide.
  • Mass genocide and omnicide will also remove all regional fear after they are cast. Regional fear is induced from non-seen monsters and they would have been killed by the use of the spell.
  • Before casting Mass Genocide, borg will make sure he has a recent Detect Evil cast or at least ESP.  This way he will have a better idea of how many monsters are going to be affected, and thereby correctly estimate the amount of damage he will take.
  • Added more support for the death realm and use of Esoteria.
  • Vampiric drain spell will be given a higher reward if the borg is hungry or weak since it provides nutrition.  It also counts as BI_AFOOD.
  • I reduced some of the swap armor bonuses that relate to damage calculation.  Those values tended to skew the results and make carrying a heavy swap armor a good idea.
  • The 3 invulnerability spells change the colors of the items and monsters (white and dark grey) so the borg should ignore the color change when examining the screen for new objects in observe_take_move().
  • Added support for being stuck in a wall at the end of Wraith_form and how to manage that.  borg_flow_passwall()
Posted in Zangband 240 | Tagged , , , , , | Leave a comment

Major Sea of Runes work

I have been running a Sorcery/Nature guy.  I have made some improvement to the spell use for those realms.  I also made a serious overhaul to the Sea of Runes routines.

  • Added a cost to the racial attacks and the cost is greater if he’s lower on mana or HP.
  • Reordered and reworked the defence routine of summoning helpers.  Its now more depth dependant.  It was futile to summon a red centipede on dungeon depth 45.
  •  Added a cost to the mutation and racial attacks.  This cost will reduce the reward for using the effect.
  •  Added a check in borg_launch_damage_one() which will eliminate using extremely low damage attacks against a powerful enemy.  Ie, no long will the borg use a damage 5 offset-ball attack against a creature with 2800 HP.
  •  Added the other sorcery source of ESP to the borg_perma maneuvers as well as granting the BI_SESP (source of ESP] flag to spells so the borg could dive deeper.  This source is checked in the borg_prep code.  Also added a BI_SSINV as a source from spells.
  •  Allowed the tracking of unique monsters over a greater distance so as to avoid creating multiple instances of them.
  •  Removed the code that deleted a monster if it didn’t move during its turn (borg_follow_kill())
  •  Borg_escape() will try to forbid teleporting if the borg is in an as_corridor and fighting a unique.
  •  Rework on borg_follow_kill() which attempts to guess the current grid of a monster that is now not visable.
  •  No need to flow to a recover grid if sitting in an as_corridor.  Its as safe as anything else.
  •  Attempt to use borg_recover() if sitting in a as_corridor, prior to leaving it.  There is a reason why we were there.  Lets heal up before venturing out.
  •  Borg_attack_aux_rest() needed a time check to make sure the borg didn’t wait ad nauseam.
  •  Better DimDoor support added to certain flow routines and made the borg_dim_door_to() more useful to other routines who borrow it.
  •  Borg_kills_summoner will be linked to the flow distance for a summoner instead of normal distance().  Change made in borg_near_monster_type()
  •  Rework the monster flow depth to be based on the compilier flag of MONSTER_FLOW and the tuned for individual races (r_ptr->aaf).  Also added some support into borg_near_monster_type() for the flag borg_kills_summoner.  I also reworked the flow_spread_m() to more closely match the game’s internal calculation.  The result is really nice.
  •  Extensive rework the BORG_VIEW array in order to reduce the number of calls to borg_los().
  •  Added support for magical figurines being thown as weapons and kept in the inventory.
  •  Fixed a crash in borg_think_home_sell_aux().
  •  Backing up (from borg_caution()) will grant a more favorable result to a grid which is occupied by a pet.  The will swap places with the pet and throw it under bus.  He already knew how to use the mutation of swap position but not a manual displacement.
  •  Borg will not purchase (grab for home) mundane equipment. If can find those in the dungeon.
  •  The ‘bored’ flag in borg_leave_level is made false if the borg is fighting a questor monster.
  •  Added the Nature spell of Explosive Rune to the functions calling runes.
  •  Tweaked with the defense maneuver for speed to encourage the borg to cast it if questor or uniques were on the level.
  •  bool DEPTH_QUEST_level was always set to false, but I added support to keep it accurate.
  •  Resequenced the teleport other sources to as to conserve mana and use up charges first.
  •  Slight bug fix on calculating targets of Teleport Other.
  •  borg_fear_region[y][x] will reduce more quickly.
  •  Added a flag called BI_NSRANGED, which is a ‘Non-Spell Ranged Attack.’  It is used in teleporting away monsters while in a sea of runes.
  •  Water and Lava will no longer be considered vison blocking layers like doors and walls.
  •  The Nature Realm spell of Whirlwind attack needed to check if an adjacent monster was a pet or friendly.
  •  Borg_check_rest() would look for pets/friendlies when considering the rest.  But he was doing so after a check for breeders.  The ally check was moved higher so that the borg would be allowed to rest near a friendly/ally breeder.
  • The borg tracks when breeders are killed.  He does this so he does not rest next to an unexplored area full of unknown breeders.  But I added a check to avoid this check if the breeder was a pet.  This way, he can rest if a breeder was recently killed.
  •  Borg will not recall back to town to fix his XP if the dlevel has (morgoth | quest)
  •  Some interesting improvements to the Sea of Runes behavior:
    •  Borg will use it when he encounters questors who can bore through walls.
    •  Once the sea is fully set up, he will continue excavate the regional dungeon using S2M in order to increase the number of shots on the tunneling monster.
    •  Will use Light Beam to illuminate the recently excavated grid so he no longer assumes that it is a wall grid (which would have limited his LOS() and shots).
    •  Will rest there as a defence maneuver and as an attack maneuver in order to correctly make normal attacks and wait for monsters to approach.
    •  Will wait about 500 rounds for tunneling to approach.  If not seen then he goes on the hunt and behaves normally.
    •  Will use Teleport Other to get others away from the area he is trying to use for a Sea of Runes.
    •  Can excavate an area and build the see instead of having to find a room with the right dimensions.
    •  Can wait for a bit, then leave the sea to go hunt around.
    •  Can return to the existing sea or build a new one following the hunt.
    •  Will create a 5×5 or 3×3 grid based on how affordable the glyph spell is.
    •  The borg will consider the terrain when using Teleport Other spell.  Since some monsters are not able to cross certain terrains, they are less of a threat.
  •  I added several bitwise flags to the borg code to manage his special position behavior and special questor/unique monster appearances.
  •  Improved the use of the perma-spell of resistance.  He was still casting it, even though he had 3 immunities.

 

Posted in Zangband 240 | Tagged , , | Leave a comment

February Improvements

    • Fixed a problem with wearing swap items. Sometimes, the borg might lose a critical skill (Free Action) when switching to a swap item.
    • There had been some crashes reported with using Windows 8 and using the ‘~’ knowledge menus. Its related to permissions in creating files.
    • There were crashes in the Self Knowledge object. The game was encountering an error in self_knowledge() at line 88, which read: strcpy(v_name, virtue[(p_ptr->vir_types[v_nr])-1]); Strangely, this was a [-1] error.  I never encountered it prior to using windows 8 and MSVS2012.  So it may be related to the IDE.
    • The borg needed support to know if he was in the self knowledge screen and to escape out of it.
    • Borg was having a little issue with borg_wear_swap() and wanting to remove important gear.
    • Improved the routine which allowed him to swap in items to do more damage.
    • Problem with the chaos spell of Meteor Swarm.
      • The do…while loop was processing the reverse of what it should (the out-of-bounds were allowed to pass instead of being sent back into the block). This lead to crashes when the spell was cast near the border of the dungeon.
      • The old logic forced meteors to land on grids 5 spaces away, which forced them to land in corner relative to the player. That was repaired.
    • Chaos spell of Meteor Swarm needed a little better support for targetting and correctly adding up possible damage. It is a handy spell while in a hallway.
Posted in Zangband 240 | Tagged , , , , | Leave a comment