diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index 612b2cfbeae09e60f3d45f6fd7bcc7b05606e979..8400b41d285bba3fa0550f255bb4cfec671058db 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -590,21 +590,7 @@ end function _M:useOrbPortal(portal) if portal.special then portal:special(self) return end - local wait = function() - local co = coroutine.running() - local ok = false - self:restInit(20, "using the portal", "used the poral", function(cnt, max) - if cnt > max then ok = true end - coroutine.resume(co) - end) - coroutine.yield() - if not ok then - game.logPlayer(self, "You have been interrupted!") - return false - end - return true - end - if not wait() then return end + if spotHostiles(self) then game.logPlayer(self, "You can not use the Orb with foes in sight.") end if portal.teleport_level then local x, y = util.findFreeGrid(portal.teleport_level.x, portal.teleport_level.y, 2, true, {[Map.ACTOR]=true}) diff --git a/game/modules/tome/class/generator/actor/HighPeakFinal.lua b/game/modules/tome/class/generator/actor/HighPeakFinal.lua index 6148b124b37ee8e75657e54f8c14b2faf67692a3..e6b6955d6ffad79eedf02dcf105f4dba3ece0cd4 100644 --- a/game/modules/tome/class/generator/actor/HighPeakFinal.lua +++ b/game/modules/tome/class/generator/actor/HighPeakFinal.lua @@ -36,7 +36,7 @@ end function _M:tick() local val = rng.float(0,1) for i = 1,self.max_rate - 1 do - if val < rng.poissonProcess(i, self.turn_scale, 0.25) then + if val < rng.poissonProcess(i, self.turn_scale, 0.1) then self:generateOne() else break diff --git a/game/modules/tome/data/zones/high-peak/grids.lua b/game/modules/tome/data/zones/high-peak/grids.lua index 9599b81964be7e7ac3c7002b9fd2a17d13cf12da..b66e31e66ea97648f572dc89f956e9748b638021 100644 --- a/game/modules/tome/data/zones/high-peak/grids.lua +++ b/game/modules/tome/data/zones/high-peak/grids.lua @@ -75,7 +75,7 @@ This one seems to go to an unknown place, seemingly out of this world. You dare } local invocation_close = function(self, who) - if not who:hasQuest("high-peak") or who:hasQuest("high-peak"):isCompleted() then return end + if not who:hasQuest("high-peak") or who:hasQuest("high-peak"):isEnded() then return end game.logPlayer(who, "#LIGHT_BLUE#You use the orb on the portal, shutting it down easily.") -- Remove the level spot local spot = game.level:pickSpot{type="portal", subtype=self.summon} diff --git a/game/modules/tome/data/zones/high-peak/npcs.lua b/game/modules/tome/data/zones/high-peak/npcs.lua index 8bc5ab73272ff61a00d3b3082e95ba3c7f2ea5eb..4daacc5e9e7222fc9d0b83f42d3bdafe2d70d69a 100644 --- a/game/modules/tome/data/zones/high-peak/npcs.lua +++ b/game/modules/tome/data/zones/high-peak/npcs.lua @@ -121,41 +121,50 @@ newEntity{ max_life = 1000, life_rating = 36, fixed_rating = true, max_mana = 10000, mana_regen = 10, + vim_regen = 50, rank = 5, size_category = 3, stats = { str=40, dex=60, cun=60, mag=30, con=40 }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, resolvers.equip{ - {type="weapon", subtype="staff", ego_chance=100, autoreq=true}, - {type="armor", subtype="cloth", ego_chance=100, autoreq=true}, + {type="weapon", subtype="sword", ego_chance=100, autoreq=true}, + {type="weapon", subtype="waraxe", ego_chance=100, autoreq=true}, + {type="armor", subtype="massive", ego_chance=100, autoreq=true}, }, resolvers.drops{chance=100, nb=1, {defined="PEARL_LIFE_DEATH"} }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, resolvers.talents{ - [Talents.T_FLAME]=5, - [Talents.T_FREEZE]=5, - [Talents.T_LIGHTNING]=5, - [Talents.T_MANATHRUST]=5, - [Talents.T_INFERNO]=5, - [Talents.T_FLAMESHOCK]=5, - [Talents.T_STONE_SKIN]=5, - [Talents.T_STRIKE]=5, - [Talents.T_HEAL]=5, - [Talents.T_REGENERATION]=5, - [Talents.T_ILLUMINATE]=5, - [Talents.T_QUICKEN_SPELLS]=5, - [Talents.T_SPELL_SHAPING]=5, - [Talents.T_ARCANE_POWER]=5, - [Talents.T_METAFLOW]=5, - [Talents.T_PHASE_DOOR]=5, - [Talents.T_ESSENCE_OF_SPEED]=5, + [Talents.T_BONE_GRAB]=5, + [Talents.T_BONE_SPEAR]=5, + [Talents.T_BONE_SHIELD]=5, + [Talents.T_BURNING_HEX]=5, + [Talents.T_EMPATHIC_HEX]=5, + [Talents.T_CURSE_OF_VULNERABILITY]=5, + [Talents.T_CURSE_OF_DEFENSELESSNESS]=5, + [Talents.T_CURSE_OF_DEATH]=5, + [Talents.T_VIRULENT_DISEASE]=5, + [Talents.T_CYST_BURST]=5, + [Talents.T_CATALEPSY]=5, + [Talents.T_EPIDEMIC]=5, + [Talents.T_REND]=5, + [Talents.T_RUIN]=5, + [Talents.T_DARK_SURPRISE]=5, + [Talents.T_CORRUPTED_STRENGTH]=5, + [Talents.T_BLOODLUST]=5, + [Talents.T_ACID_BLOOD]=5, + [Talents.T_DRAIN]=5, + + [Talents.T_WEAPON_COMBAT]=10, + [Talents.T_SWORD_MASTERY]=7, + [Talents.T_AXE_MASTERY]=7, + [Talents.T_MASSIVE_ARMOUR_TRAINING]=5, }, resolvers.sustains_at_birth(), - autolevel = "caster", - ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar" }, + autolevel = "warriormage", + ai = "dumb_talented_simple", ai_state = { talent_in=3, ai_move="move_astar" }, on_die = function(self, who) game.player:resolveSource():setQuestStatus("high-peak", engine.Quest.COMPLETED, "pallando-dead") diff --git a/ideas/blight.ods b/ideas/blight.ods index 37f4ee2f84f042168d784c0bf8bbea72efafe0d5..d8a4d5ff9c7c466d2b8ce575a8729d6c04a6f280 100644 Binary files a/ideas/blight.ods and b/ideas/blight.ods differ