diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua index d6d36fc05dea7e706e0741d967a65ff8e8b9c2d4..5e0f7a3d39387b85e9ad1fc5e1559a251596dc68 100644 --- a/game/engines/default/engine/Zone.lua +++ b/game/engines/default/engine/Zone.lua @@ -300,7 +300,7 @@ function _M:finishEntity(level, type, e, ego_filter) if _G.type(e.egos_chance) == "number" then e.egos_chance = {e.egos_chance} end -- Pick an ego, then an other and so until we get no more local picked_etype = {} - local etype = rng.tableIndex(e.egos_chance, picked_etype) + local etype = e.ego_first_type and e.ego_first_type or rng.tableIndex(e.egos_chance, picked_etype) local echance = etype and e.egos_chance[etype] while etype and rng.percent(util.bound(echance + (ego_chance or 0), 0, 100)) do picked_etype[etype] = true diff --git a/game/modules/tome/data/chats/angolwen-leader.lua b/game/modules/tome/data/chats/angolwen-leader.lua index 0acee80bdf514d61f26c25476b56fa73bb880eed..8596d9a5bc37be2cd70f62aa10c7333bdd56a7dc 100644 --- a/game/modules/tome/data/chats/angolwen-leader.lua +++ b/game/modules/tome/data/chats/angolwen-leader.lua @@ -18,7 +18,7 @@ -- darkgod@te4.org newChat{ id="welcome", - text = [[#LIGHT_GREEN#*A tall elven woman stands before you, her fair skin radiates incredible power throught her white robe.*#WHITE# + text = [[#LIGHT_GREEN#*A tall woman stands before you, her fair skin radiates incredible power throught her white robe.*#WHITE# I am Linaniil of the Kar'Krul. Welcome to our city, @playerdescriptor.subclass@. What may I do for you?]], answers = { {"I require all the help I can get, not for my sake but for the town of Derth, in the north east of here.", jump="save-derth", cond=function(npc, player) local q = player:hasQuest("lightning-overload") return q and q:isCompleted("saved-derth") and not q:isCompleted("tempest-located") end}, diff --git a/game/modules/tome/data/general/objects/egos/wands.lua b/game/modules/tome/data/general/objects/egos/wands.lua index af720dd96a1bed0bf466050192c99789dc10e652..c9a02ad28b6cba53108587383514d00db9f206c6 100644 --- a/game/modules/tome/data/general/objects/egos/wands.lua +++ b/game/modules/tome/data/general/objects/egos/wands.lua @@ -147,6 +147,32 @@ newEntity{ end} } +newEntity{ + name = " of conjuration", suffix=true, instant_resolve=true, + level_range = {10, 50}, + rarity = 6, + cost_per_charge = 0.5, + + use_power = { name = "fire a bolt of a random element", power = 6, use = function(self, who) + local tg = {type="bolt", range=10 + who:getMag(10)} + local x, y = who:getTarget(tg) + if not x or not y then return nil end + local dam = (45 + who:getMag(25)) * self.material_level + local elem = rng.table{ + {engine.DamageType.FIRE, "flame"}, + {engine.DamageType.COLD, "freeze"}, + {engine.DamageType.LIGHTNING, "lightning_explosion"}, + {engine.DamageType.ACID, "acid"}, + {engine.DamageType.NATURE, "slime"}, + {engine.DamageType.BLIGHT, "slime"}, + } + who:project(tg, x, y, elem[1], rng.avg(dam / 2, dam, 3), {type=elem[2]}) + game:playSoundNear(who, "talents/fire") + game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true}) + return nil, true + end} +} + newEntity{ name = " of healing", suffix=true, instant_resolve=true, level_range = {25, 50}, diff --git a/game/modules/tome/data/general/objects/wands.lua b/game/modules/tome/data/general/objects/wands.lua index 9eccb6a268ec418b69598de5e8dd5ff474e13c9d..0875aed797e68b1da1be81493e0c7df987782475 100644 --- a/game/modules/tome/data/general/objects/wands.lua +++ b/game/modules/tome/data/general/objects/wands.lua @@ -29,7 +29,7 @@ newEntity{ is_magic_device = true, elec_destroy = {{20,1}, {30,2}, {60,5}, {90,10}, {170,20}}, desc = [[Magical wands are made by powerful alchemists and archmages to store spells. Anybody can use them to release the spells.]], - egos = "/data/general/objects/egos/wands.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), suffix=100 }, + egos = "/data/general/objects/egos/wands.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), suffix=100 }, ego_first_type = "suffix", } newEntity{ base = "BASE_WAND",