{"id":519,"date":"2015-02-28T19:46:17","date_gmt":"2015-03-01T02:46:17","guid":{"rendered":"http:\/\/www.innovapain.com\/borg\/?p=519"},"modified":"2015-02-28T19:46:17","modified_gmt":"2015-03-01T02:46:17","slug":"major-sea-of-runes-work","status":"publish","type":"post","link":"http:\/\/www.innovapain.com\/borg\/2015\/02\/28\/major-sea-of-runes-work\/","title":{"rendered":"Major Sea of Runes work"},"content":{"rendered":"<p>I have been running a Sorcery\/Nature guy.\u00a0 I have made some improvement to the spell use for those realms.\u00a0 I also made a serious overhaul to the Sea of Runes routines.<\/p>\n<ul>\n<li>Added a cost to the racial attacks and the cost is greater if he&#8217;s lower on mana or HP.<\/li>\n<li>Reordered and reworked the defence routine of summoning helpers.\u00a0 Its now more depth dependant.\u00a0 It was futile to summon a red centipede on dungeon depth 45.<\/li>\n<li>\u00a0Added a cost to the mutation and racial attacks.\u00a0 This cost will reduce the reward for using the effect.<\/li>\n<li>\u00a0Added a check in borg_launch_damage_one() which will eliminate using extremely low damage attacks against a powerful enemy.\u00a0 Ie, no long will the borg use a damage 5 offset-ball attack against a creature with 2800 HP.<\/li>\n<li>\u00a0Added 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.\u00a0 This source is checked in the borg_prep code.\u00a0 Also added a BI_SSINV as a source from spells.<\/li>\n<li>\u00a0Allowed the tracking of unique monsters over a greater distance so as to avoid creating multiple instances of them.<\/li>\n<li>\u00a0Removed the code that deleted a monster if it didn&#8217;t move during its turn (borg_follow_kill())<\/li>\n<li>\u00a0Borg_escape() will try to forbid teleporting if the borg is in an as_corridor and fighting a unique.<\/li>\n<li>\u00a0Rework on borg_follow_kill() which attempts to guess the current grid of a monster that is now not visable.<\/li>\n<li>\u00a0No need to flow to a recover grid if sitting in an as_corridor.\u00a0 Its as safe as anything else.<\/li>\n<li>\u00a0Attempt to use borg_recover() if sitting in a as_corridor, prior to leaving it.\u00a0 There is a reason why we were there.\u00a0 Lets heal up before venturing out.<\/li>\n<li>\u00a0Borg_attack_aux_rest() needed a time check to make sure the borg didn&#8217;t wait ad nauseam.<\/li>\n<li>\u00a0Better DimDoor support added to certain flow routines and made the borg_dim_door_to() more useful to other routines who borrow it.<\/li>\n<li>\u00a0Borg_kills_summoner will be linked to the flow distance for a summoner instead of normal distance().\u00a0 Change made in borg_near_monster_type()<\/li>\n<li>\u00a0Rework the monster flow depth to be based on the compilier flag of MONSTER_FLOW and the tuned for individual races (r_ptr-&gt;aaf).\u00a0 Also added some support into borg_near_monster_type() for the flag borg_kills_summoner.\u00a0 I also reworked the flow_spread_m() to more closely match the game&#8217;s internal calculation.\u00a0 The result is really nice.<\/li>\n<li>\u00a0Extensive rework the BORG_VIEW array in order to reduce the number of calls to borg_los().<\/li>\n<li>\u00a0Added support for magical figurines being thown as weapons and kept in the inventory.<\/li>\n<li>\u00a0Fixed a crash in borg_think_home_sell_aux().<\/li>\n<li>\u00a0Backing up (from borg_caution()) will grant a more favorable result to a grid which is occupied by a pet.\u00a0 The will swap places with the pet and throw it under bus.\u00a0 He already knew how to use the mutation of swap position but not a manual displacement.<\/li>\n<li>\u00a0Borg will not purchase (grab for home) mundane equipment. If can find those in the dungeon.<\/li>\n<li>\u00a0The &#8216;bored&#8217; flag in borg_leave_level is made false if the borg is fighting a questor monster.<\/li>\n<li>\u00a0Added the Nature spell of Explosive Rune to the functions calling runes.<\/li>\n<li>\u00a0Tweaked with the defense maneuver for speed to encourage the borg to cast it if questor or uniques were on the level.<\/li>\n<li>\u00a0bool DEPTH_QUEST_level was always set to false, but I added support to keep it accurate.<\/li>\n<li>\u00a0Resequenced the teleport other sources to as to conserve mana and use up charges first.<\/li>\n<li>\u00a0Slight bug fix on calculating targets of Teleport Other.<\/li>\n<li>\u00a0borg_fear_region[y][x] will reduce more quickly.<\/li>\n<li>\u00a0Added a flag called BI_NSRANGED, which is a &#8216;Non-Spell Ranged Attack.&#8217;\u00a0 It is used in teleporting away monsters while in a sea of runes.<\/li>\n<li>\u00a0Water and Lava will no longer be considered vison blocking layers like doors and walls.<\/li>\n<li>\u00a0The Nature Realm spell of Whirlwind attack needed to check if an adjacent monster was a pet or friendly.<\/li>\n<li>\u00a0Borg_check_rest() would look for pets\/friendlies when considering the rest.\u00a0 But he was doing so after a check for breeders.\u00a0 The ally check was moved higher so that the borg would be allowed to rest near a friendly\/ally breeder.<\/li>\n<li>The borg tracks when breeders are killed.\u00a0 He does this so he does not rest next to an unexplored area full of unknown breeders.\u00a0 But I added a check to avoid this check if the breeder was a pet.\u00a0 This way, he can rest if a breeder was recently killed.<\/li>\n<li>\u00a0Borg will not recall back to town to fix his XP if the dlevel has (morgoth | quest)<\/li>\n<li>\u00a0Some interesting improvements to the Sea of Runes behavior:<\/li>\n<ul>\n<li>\u00a0Borg will use it when he encounters questors who can bore through walls.<\/li>\n<li>\u00a0Once 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.<\/li>\n<li>\u00a0Will 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).<\/li>\n<li>\u00a0Will rest there as a defence maneuver and as an attack maneuver in order to correctly make normal attacks and wait for monsters to approach.<\/li>\n<li>\u00a0Will wait about 500 rounds for tunneling to approach.\u00a0 If not seen then he goes on the hunt and behaves normally.<\/li>\n<li>\u00a0Will use Teleport Other to get others away from the area he is trying to use for a Sea of Runes.<\/li>\n<li>\u00a0Can excavate an area and build the see instead of having to find a room with the right dimensions.<\/li>\n<li>\u00a0Can wait for a bit, then leave the sea to go hunt around.<\/li>\n<li>\u00a0Can return to the existing sea or build a new one following the hunt.<\/li>\n<li>\u00a0Will create a 5&#215;5 or 3&#215;3 grid based on how affordable the glyph spell is.<\/li>\n<li>\u00a0The borg will consider the terrain when using Teleport Other spell.\u00a0 Since some monsters are not able to cross certain terrains, they are less of a threat.<\/li>\n<\/ul>\n<li>\u00a0I added several bitwise flags to the borg code to manage his special position behavior and special questor\/unique monster appearances.<\/li>\n<li>\u00a0Improved the use of the perma-spell of resistance.\u00a0 He was still casting it, even though he had 3 immunities.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been running a Sorcery\/Nature guy.\u00a0 I have made some improvement to the spell use for those realms.\u00a0 I also made a serious overhaul to the Sea of Runes routines. Added a cost to the racial attacks and the &hellip; <a href=\"http:\/\/www.innovapain.com\/borg\/2015\/02\/28\/major-sea-of-runes-work\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[14,24,29],"class_list":["post-519","post","type-post","status-publish","format-standard","hentry","category-zborg","tag-defense","tag-nature-realm","tag-sorcery-realm"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/posts\/519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/comments?post=519"}],"version-history":[{"count":1,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/posts\/519\/revisions"}],"predecessor-version":[{"id":520,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/posts\/519\/revisions\/520"}],"wp:attachment":[{"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/media?parent=519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/categories?post=519"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.innovapain.com\/borg\/wp-json\/wp\/v2\/tags?post=519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}