diff --git a/game/engines/default/engine/utils.lua b/game/engines/default/engine/utils.lua index 7fdf9db38687dba7cfb25b0943b1d29ad2bc4885..1aabfe0bb53fd3150b30463f1cf134d810d38dd1 100644 --- a/game/engines/default/engine/utils.lua +++ b/game/engines/default/engine/utils.lua @@ -196,6 +196,13 @@ function table.from_list(t, k, v) for i, e in ipairs(t) do tt[e[k or 1]] = e[v or 2] end return tt end + +function table.removeFromList(t, ...) + for _, v in ipairs{...} do + for i = #t, 1, -1 do if t[i] == v then table.remove(t, i) end end + end +end + --- Adds missing keys from the src table to the dst table. -- @param dst The destination table, which will have all merged values. -- @param src The source table, supplying values to be merged. diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 78f5baef72ff7288a4b54b4d79fe5822c5472533..4be784737cd9642a6d1e3aff73de39dcbd32cf9a 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -1210,10 +1210,13 @@ function _M:setupCommands() setfenv(f, setmetatable({level=self.level, zone=self.zone}, {__index=_G})) print(pcall(f)) --]] - package.loaded["mod.dialogs.elements.TalentTrees"] = nil - package.loaded["mod.dialogs.Levelup2Dialog"] = nil - game:registerDialog(require("mod.dialogs.Levelup2Dialog").new(game.player)) - end end, + local o = game.zone:makeEntity(game.level,"object", { + type = "weapon", subtype="battleaxe",random_object={}}, nil, true) + if o then + o:identify(true) + game.zone:addEntity(game.level, o, "object", game.player.x, game.player.y) + end + end end, [{"_f","ctrl"}] = function() if config.settings.cheat then self.player.quests["love-melinda"] = nil self.player:grantQuest("love-melinda") diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 7a14cca75687fd4348ec6085e73514c63f37bf54..c42a868b2d174ecc30b7960b9dd98b9aec8a022b 100644 --- a/game/modules/tome/class/GameState.lua +++ b/game/modules/tome/class/GameState.lua @@ -202,11 +202,6 @@ local randart_name_rules = { syllablesEnd = "arc, bane, bait, bile, biter, blast, bliss, blood, blow, bloom, butcher, blur, bolt, bone, bore, brace, braid, braze, breacher, breaker, breeze, brawn, burst, bringer, bearer, bender, blight, brand, break, born, black, bright, crypt, crack, clash, clamor, cut, cast, cutter, dredge, dash, dream, dare, death, edge, envy, fury, fear, fame, foe, furnace, flash, fiend, fist, gore, gash, gasher, grind, grinder, guile, grit, glean, glory, glamour, hack, hacker, hash, hue, hunger, hunt, hunter, ire, idol, immortal, justice, jeer, jam, kill, killer, kiss, 's kiss, karma, kin, king, knave, knight, lord, lore, lash, lace, lady, maim, mark, moon, master, mistress, mire, monster, might, marrow, mortal, minister, malice, naught, null, noon, nail, nigh, night, oath, order, oracle, oozer, obeisance, oblivion, onslaught, obsidian, peal, pyre, parry, power, python, prophet, pain, passion, pierce, piercer, pride, pulverizer, piety, panic, pain, punish, pall, quench, quencher, quake, quarry, queen, quell, queller, quick, quill, reaper, ravage, ravager, raze, razor, roar, rage, race, radiance, raider, rain, rot, ransom, rune, reign, rupture, ream, rebel, raven, river, ripper, rip, ripper, rock, reek, reeve, resolve, rigor, rend, raptor, shine, slice, slicer, spar, spawn, spawner, spitter, squall, steel, stoker, snake, sorrow, sage, stake, serpent, shear, sin, sear, spire, stalker, shaper, strider, streak, streaker, saw, scar, schism, star, streak, sting, stinger, strike, striker, stun, sun, sweep, sweeper, swift, stone, seam, sever, smash, smasher, spike, spiker, thorn, terror, touch, tide, torrent, trial, typhoon, titan, tickler, tooth, treason, trencher, taint, trail, umbra, usher, valor, vagrant, vile, vein, veil, venom, viper, vault, vengeance, vortex, vice, wrack, walker, wake, waker, war, ward, warden, wasp, weeper, wedge, wend, well, whisper, wild, wilder, will, wind, wilter, wing, winnow, wire, wisp, wish, witch, wolf, woe, wither, witherer, worm, wreath, worth, wreck, wrecker, wrest, writher, wyrd, zeal, zephyr", rules = "$s$e", }, - venom = { - syllablesStart ="Ichor, Offal, Rot, Scab, Squalor, Taint, Undeath, Vile, Weep, Plague, Pox, Pus, Gore, Sepsis, Corruption, Filth, Muck, Fester, Toxin, Venom, Scorpion, Serpent, Viper, Cobra, Sulfur, Mire, Ooze, Wretch, Carrion, Bile, Bog, Sewer, Swamp, Corpse, Scum, Mold, Spider, Phlegm, Mucus, Morbus, Murk, Smear, Cyst", - syllablesEnd = "arc, bane, bait, biter, blast, bliss, blood, blow, bloom, butcher, blur, bolt, bone, bore, brace, braid, braze, breacher, breaker, breeze, brawn, burst, bringer, bearer, bender, blight, brand, break, born, black, bright, crypt, crack, clash, clamor, cut, cast, cutter, dredge, dash, dream, dare, death, edge, envy, fury, fear, fame, foe, furnace, flash, fiend, fist, gash, gasher, grind, grinder, guile, grit, glean, glory, glamour, hack, hacker, hash, hue, hunger, hunt, hunter, ire, idol, immortal, justice, jeer, jam, kill, killer, kiss, 's kiss, karma, kin, king, knave, knight, lord, lore, lash, lace, lady, maim, mark, moon, master, mistress, mire, monster, might, marrow, mortal, minister, malice, naught, null, noon, nail, nigh, night, oath, order, oracle, oozer, obeisance, oblivion, onslaught, obsidian, peal, pyre, parry, power, python, prophet, pain, passion, pierce, piercer, pride, pulverizer, piety, panic, pain, punish, pall, quench, quencher, quake, quarry, queen, quell, queller, quick, quill, reaper, ravage, ravager, raze, razor, roar, rage, race, radiance, raider, rain, ransom, rune, reign, rupture, ream, rebel, raven, river, ripper, rip, ripper, rock, reek, reeve, resolve, rigor, rend, raptor, shine, slice, slicer, spar, spawn, spawner, spitter, squall, steel, stoker, snake, sorrow, sage, stake, shear, sin, sear, spire, stalker, shaper, strider, streak, streaker, saw, scar, schism, star, streak, sting, stinger, strike, striker, stun, sun, sweep, sweeper, swift, stone, seam, sever, smash, smasher, spike, spiker, thorn, terror, touch, tide, torrent, trial, typhoon, titan, tickler, tooth, treason, trencher, trail, umbra, usher, valor, vagrant, vile, vein, veil, venom, viper, vault, vengeance, vortex, vice, wrack, walker, wake, waker, war, ward, warden, wasp, weeper, wedge, wend, well, whisper, wild, wilder, will, wind, wilter, wing, winnow, winter, wire, wisp, wish, witch, wolf, woe, wither, witherer, worm, wreath, worth, wreck, wrecker, wrest, writher, wyrd, zeal, zephyr", - rules = "$s$e", - }, lightning = { syllablesStart ="Tempest, Storm, Lightning, Arc, Shock, Thunder, Charge, Cloud, Air, Nimbus, Gale, Crackle, Shimmer, Flash, Spark, Blast, Blaze, Strike, Sky, Bolt", syllablesEnd = "bane, bait, bile, biter, blast, bliss, blood, blow, bloom, butcher, blur, bone, bore, brace, braid, braze, breacher, breaker, breeze, brawn, burst, bringer, bearer, bender, blight, brand, break, born, black, bright, crypt, crack, clash, clamor, cut, cast, cutter, dredge, dash, dream, dare, death, edge, envy, fury, fear, fame, foe, furnace, flash, fiend, fist, gore, gash, gasher, grind, grinder, guile, grit, glean, glory, glamour, hack, hacker, hash, hue, hunger, hunt, hunter, ire, idol, immortal, justice, jeer, jam, kill, killer, kiss, 's kiss, karma, kin, king, knave, knight, lord, lore, lash, lace, lady, maim, mark, moon, master, mistress, mire, monster, might, marrow, mortal, minister, malice, naught, null, noon, nail, nigh, night, oath, order, oracle, oozer, obeisance, oblivion, onslaught, obsidian, peal, pyre, parry, power, python, prophet, pain, passion, pierce, piercer, pride, pulverizer, piety, panic, pain, punish, pall, quench, quencher, quake, quarry, queen, quell, queller, quick, quill, reaper, ravage, ravager, raze, razor, roar, rage, race, radiance, raider, rain, rot, ransom, rune, reign, rupture, ream, rebel, raven, river, ripper, rip, ripper, rock, reek, reeve, resolve, rigor, rend, raptor, shine, slice, slicer, spar, spawn, spawner, spitter, squall, steel, stoker, snake, sorrow, sage, stake, serpent, shear, sin, sear, spire, stalker, shaper, strider, streak, streaker, saw, scar, schism, star, streak, sting, stinger, stun, sun, sweep, sweeper, swift, stone, seam, sever, smash, smasher, spike, spiker, thorn, terror, touch, tide, torrent, trial, typhoon, titan, tickler, tooth, treason, trencher, taint, trail, umbra, usher, valor, vagrant, vile, vein, veil, venom, viper, vault, vengeance, vortex, vice, wrack, walker, wake, waker, war, ward, warden, wasp, weeper, wedge, wend, well, whisper, wild, wilder, will, wind, wilter, wing, winnow, winter, wire, wisp, wish, witch, wolf, woe, wither, witherer, worm, wreath, worth, wreck, wrecker, wrest, writher, wyrd, zeal, zephyr", @@ -223,18 +218,14 @@ local randart_name_rules = { rules = "$s$e", }, nature = { - syllablesStart ="Nature, Green, Loam, Earth, Heal, Root, Growth, Grow, Bark, Bloom, Satyr, Rain, Pure, Wild, Wind, Cure, Cleanse, Forest, Breeze, Oak, Willow, Tree, Balance, Flower", - syllablesEnd = "arc, bane, bait, bile, biter, blast, bliss, blood, blow, bloom, butcher, blur, bolt, bone, bore, brace, braid, braze, breacher, breaker, brawn, burst, bringer, bearer, bender, blight, brand, break, born, black, bright, crypt, crack, clash, clamor, cut, cast, cutter, dredge, dash, dream, dare, death, edge, envy, fury, fear, fame, foe, furnace, flash, fiend, fist, gore, gash, gasher, grind, grinder, guile, grit, glean, glory, glamour, hack, hacker, hash, hue, hunger, hunt, hunter, ire, idol, immortal, justice, jeer, jam, kill, killer, kiss, 's kiss, karma, kin, king, knave, knight, lord, lore, lash, lace, lady, maim, mark, moon, master, mistress, mire, monster, might, marrow, mortal, minister, malice, naught, null, noon, nail, nigh, night, oath, order, oracle, oozer, obeisance, oblivion, onslaught, obsidian, peal, pyre, parry, power, python, prophet, pain, passion, pierce, piercer, pride, pulverizer, piety, panic, pain, punish, pall, quench, quencher, quake, quarry, queen, quell, queller, quick, quill, reaper, ravage, ravager, raze, razor, roar, rage, race, radiance, raider, rot, ransom, rune, reign, rupture, ream, rebel, raven, river, ripper, rip, ripper, rock, reek, reeve, resolve, rigor, rend, raptor, shine, slice, slicer, spar, spawn, spawner, spitter, squall, steel, stoker, snake, sorrow, sage, stake, serpent, shear, sin, sear, spire, stalker, shaper, strider, streak, streaker, saw, scar, schism, star, streak, sting, stinger, strike, striker, stun, sun, sweep, sweeper, swift, stone, seam, sever, smash, smasher, spike, spiker, thorn, terror, touch, tide, torrent, trial, typhoon, titan, tickler, tooth, treason, trencher, taint, trail, umbra, usher, valor, vagrant, vile, vein, veil, venom, viper, vault, vengeance, vortex, vice, wrack, walker, wake, waker, war, ward, warden, wasp, weeper, wedge, wend, well, whisper, wild, wilder, will, wind, wilter, wing, winnow, winter, wire, wisp, wish, witch, wolf, woe, wither, witherer, worm, wreath, worth, wreck, wrecker, wrest, writher, wyrd, zeal, zephyr", + syllablesStart ="Nature, Green, Loam, Earth, Heal, Root, Growth, Grow, Bark, Bloom, Satyr, Rain, Pure, Wild, Wind, Cure, Cleanse, Forest, Breeze, Oak, Willow, Tree, Balance, Flower, Ichor, Offal, Rot, Scab, Squalor, Taint, Undeath, Vile, Weep, Plague, Pox, Pus, Gore, Sepsis, Corruption, Filth, Muck, Fester, Toxin, Venom, Scorpion, Serpent, Viper, Cobra, Sulfur, Mire, Ooze, Wretch, Carrion, Bile, Bog, Sewer, Swamp, Corpse, Scum, Mold, Spider, Phlegm, Mucus, Morbus, Murk, Smear, Cyst", + syllablesEnd = "arc, bane, bait, bile, biter, blast, bliss, blood, blow, bloom, butcher, blur, bolt, bone, bore, brace, braid, braze, breacher, breaker, brawn, burst, bringer, bearer, bender, blight, brand, break, born, black, bright, crypt, crack, clash, clamor, cut, cast, cutter, dredge, dash, dream, dare, death, edge, envy, fury, fear, fame, foe, furnace, flash, fiend, fist, gore, gash, gasher, grind, grinder, guile, grit, glean, glory, glamour, hack, hacker, hash, hue, hunger, hunt, hunter, ire, idol, immortal, justice, jeer, jam, kill, killer, kiss, 's kiss, karma, kin, king, knave, knight, lord, lore, lash, lace, lady, maim, mark, moon, master, mistress, mire, monster, might, marrow, mortal, minister, malice, naught, null, noon, nail, nigh, night, oath, order, oracle, oozer, obeisance, oblivion, onslaught, obsidian, peal, pyre, parry, power, python, prophet, pain, passion, pierce, piercer, pride, pulverizer, piety, panic, pain, punish, pall, quench, quencher, quake, quarry, queen, quell, queller, quick, quill, reaper, ravage, ravager, raze, razor, roar, rage, race, radiance, raider, rot, ransom, rune, reign, rupture, ream, rebel, raven, river, ripper, rip, ripper, rock, reek, reeve, resolve, rigor, rend, raptor, shine, slice, slicer, spar, spawn, spawner, spitter, squall, steel, stoker, snake, sorrow, sage, stake, serpent, shear, sin, sear, spire, stalker, shaper, strider, streak, streaker, saw, scar, schism, star, streak, sting, stinger, strike, striker, stun, sun, sweep, sweeper, swift, stone, seam, sever, smash, smasher, spike, spiker, thorn, terror, touch, tide, torrent, trial, typhoon, titan, tickler, tooth, treason, trencher, taint, trail, umbra, usher, valor, vagrant, vile, vein, veil, venom, viper, vault, vengeance, vortex, vice, wrack, walker, wake, waker, war, ward, warden, wasp, weeper, wedge, wend, well, whisper, wild, wilder, will, wind, wilter, wing, winnow, winter, wire, wisp, wish, witch, wolf, woe, wither, witherer, worm, wreath, worth, wreck, wrecker, wrest, writher, wyrd, zeal, zephyr,", rules = "$s$e", }, } --- Generate randarts for this state function _M:generateRandart(data) - - if not self.randart_powers then self.randart_powers = engine.Object:loadList("/data/general/objects/random-artifacts.lua") end - local powers_list = self.randart_powers - -- Setup level local lev = data.lev or rng.range(12, 50) local oldlev = game.level.level @@ -249,10 +240,30 @@ function _M:generateRandart(data) if not base then game.level.level = oldlev resolvers.current_level = oldclev return end local o = base:cloneFull() - local allthemes = {'misc','psionic','sorcerous','nature','brawny','lightning','arcane','light','physical','def','tireless','unyielding','dark','nimble','spell','cold','fire','venom','attack'} - local pthemes = table.listify(o.randart_able) - local themes = {[rng.table(allthemes)] = true} - for i = 1, #pthemes do if rng.percent(pthemes[i][2]) then themes[pthemes[i][1]] = true no_theme = false end end + local powers_list = engine.Object:loadList(o.randart_able, nil, nil, function(e) if e.rarity then e.rarity = math.ceil(e.rarity / 5) end end) + o.randart_able = nil + + local allthemes = { + 'physical', 'mental', 'spell', 'defense', 'misc', 'fire', + 'lightning', 'acid', 'mind', 'arcane', 'blight', 'nature', + 'temporal', 'light', 'dark', 'antimagic' + } + local themes = {} + if data.force_themes then + for i, v in ipairs(data.force_themes) do + table.removeFromList(allthemes, v) + themes[v] = true + if v == 'antimagic' then table.removeFromList(allthemes, 'spell', 'arcane', 'blight', 'temporal') end + if v == 'spell' or v == 'arcane' or v == 'blight' or v == 'temporal' then table.removeFromList(allthemes, 'antimagic') end + end + end + for i = #themes + 1, (data.nb_themes or 2) do + if #allthemes == 0 then break end + local v = rng.tableRemove(allthemes) + themes[v] = true + if v == 'antimagic' then table.removeFromList(allthemes, 'spell', 'arcane', 'blight', 'temporal') end + if v == 'spell' or v == 'arcane' or v == 'blight' or v == 'temporal' then table.removeFromList(allthemes, 'antimagic') end + end local themes_fct = function(e) for theme, _ in pairs(e.theme) do if themes[theme] then return true end end return false @@ -355,10 +366,10 @@ function _M:generateRandart(data) end end o.egos = nil o.egos_chance = nil o.force_ego = nil - -- Re-resolve with the (possibly) new resolvers - o:resolve() - o:resolve(nil, true) end + -- Re-resolve with the (possibly) new resolvers + o:resolve() + o:resolve(nil, true) ----------------------------------------------------------- -- Imbue powers in the randart @@ -388,15 +399,22 @@ function _M:generateRandart(data) local i = 0 while hpoints > 0 do i = util.boundWrap(i + 1, 1, #powers) - local p = powers[i]:clone() if p.points <= hpoints then + print(" * adding power: "..p.name) if p.wielder then o.wielder = o.wielder or {} merger(o.wielder, p.wielder) end + if p.combat then + o.combat = o.combat or {} + merger(o.combat, p.combat) + end + if p.special_combat then + o.special_combat = o.special_combat or {} + merger(o.special_combat, p.special_combat) + end if p.copy then merger(o, p.copy) end - print(" * adding power: "..p.name) end hpoints = hpoints - p.points end @@ -423,6 +441,18 @@ function _M:generateRandart(data) hpoints = hpoints - (p and p.points or 1) * 2 end + -- Power source if none + if not o.power_source then + local ps = {} + if themes.physical or themes.defense then ps.technique = true end + if themes.mental then ps[rng.percent(50) and 'nature' or 'psionic'] = true end + if themes.spell or themes.arcane or themes.blight or themes.temporal then ps.arcane = true end + if themes.nature then ps.nature = true end + if themes.antimagic then ps.antimagic = true end + if not next(ps) then ps[rng.table{'technique','nature','arcane','psionic','antimagic'}] = true end + o.power_source = ps + end + -- Setup the name o.name = name @@ -1149,11 +1179,15 @@ function _M:entityFilterPost(zone, level, type, e, filter) end elseif type == "object" then if filter.random_object and not e.unique and e.randart_able then + local data = _G.type(filter.random_object) == "table" and filter.random_object or {} + local lev = math.max(4, game.zone:level_adjust_level(game.level, game.zone, "object")) e = game.state:generateRandart{ - lev = math.max(4, game.zone:level_adjust_level(game.level, game.zone, "object")), + lev = lev, egos = 0, - power_points_factor = 3, - nb_powers_add = 1, + power_points_factor = data.power_points_factor or 3, + nb_powers_add = data.nb_powers_add or 1, + nb_themes = data.nb_themes or math.max(2, math.floor(lev / 20)), + force_themes = data.force_themes or nil, base = e, post = function(o) o.rare = true o.unique = nil o.randart = nil end, namescheme = 3 diff --git a/game/modules/tome/data/general/objects/2haxes.lua b/game/modules/tome/data/general/objects/2haxes.lua index 93b8b42b01e2923115aa25d22e11053a17cda45e..4d29f66e331d58250eb6046d4cf05bc223e43913 100644 --- a/game/modules/tome/data/general/objects/2haxes.lua +++ b/game/modules/tome/data/general/objects/2haxes.lua @@ -32,7 +32,7 @@ newEntity{ desc = [[Massive two-handed battleaxes.]], twohanded = true, ego_bonus_mult = 0.2, - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/2hmaces.lua b/game/modules/tome/data/general/objects/2hmaces.lua index 73104354661789415efaa28a20d6a16076b6f37c..9ee77652b8789aa9fb10223820116b01dbd20d3d 100644 --- a/game/modules/tome/data/general/objects/2hmaces.lua +++ b/game/modules/tome/data/general/objects/2hmaces.lua @@ -32,7 +32,7 @@ newEntity{ desc = [[Massive two-handed maul.]], twohanded = true, ego_bonus_mult = 0.2, - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/2hswords.lua b/game/modules/tome/data/general/objects/2hswords.lua index 7855dd18ac9a537eed26b16238d3204318bd8b47..efdb5267e77d9ca7ee7dcbf1408177376268b910 100644 --- a/game/modules/tome/data/general/objects/2hswords.lua +++ b/game/modules/tome/data/general/objects/2hswords.lua @@ -32,7 +32,7 @@ newEntity{ twohanded = true, metallic = true, ego_bonus_mult = 0.2, - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/2htridents.lua b/game/modules/tome/data/general/objects/2htridents.lua index 3832455c1798593ec254735ac758dd8af47f4ca2..71d98fc203542ae2744f42e02f4dd44e523376fa 100644 --- a/game/modules/tome/data/general/objects/2htridents.lua +++ b/game/modules/tome/data/general/objects/2htridents.lua @@ -34,7 +34,7 @@ newEntity{ Tridents require the exotic weapons mastery talent to use correctly.]], twohanded = true, ego_bonus_mult = 0.2, - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/axes.lua b/game/modules/tome/data/general/objects/axes.lua index 80be834e8d1a415df393fb697a376b7b36f21dfd..c7a2bbee26cdf0ce781938bdde1d11787ed85e33 100644 --- a/game/modules/tome/data/general/objects/axes.lua +++ b/game/modules/tome/data/general/objects/axes.lua @@ -29,7 +29,7 @@ newEntity{ metallic = true, combat = { talented = "axe", damrange = 1.4, physspeed = 1, sound = {"actions/melee", pitch=0.6, vol=1.2}, sound_miss = {"actions/melee", pitch=0.6, vol=1.2}}, desc = [[One-handed war axes.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/bows.lua b/game/modules/tome/data/general/objects/bows.lua index 32f81b922bd467e825d9f86a5a0120ba4aedcb87..4b2bf43e348f4d56c49cef0cdb5afa471e68ad5b 100644 --- a/game/modules/tome/data/general/objects/bows.lua +++ b/game/modules/tome/data/general/objects/bows.lua @@ -33,7 +33,7 @@ newEntity{ archery = "bow", proj_image = resolvers.image_material("arrow", "wood"), desc = [[Longbows are used to shoot arrows at your foes.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/bow.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } @@ -114,6 +114,7 @@ newEntity{ proj_image = resolvers.image_material("arrow", "wood"), archery_ammo = "bow", desc = [[Arrows are used with bows to pierce your foes to death.]], + randart_able = "/data/general/objects/random-artifacts/ammo.lua", egos = "/data/general/objects/egos/ammo.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, resolvers.shooter_capacity(), } diff --git a/game/modules/tome/data/general/objects/cloak.lua b/game/modules/tome/data/general/objects/cloak.lua index 7d956583c0afcf89f43bfa24487fb822af038bbe..883e54e930a3f59f5c73e688edb0be4bb968f2dd 100644 --- a/game/modules/tome/data/general/objects/cloak.lua +++ b/game/modules/tome/data/general/objects/cloak.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 2, rarity = 6, desc = [[A cloth coat typically worn as a loose outer garment. It is spacious enough to be worn even over bulky metal armour.]], - randart_able = { attack=10, physical=10, spell=10, def=10, misc=50 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/cloak.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/cloth-armors.lua b/game/modules/tome/data/general/objects/cloth-armors.lua index 01bd3ce2637cb92888c37a63ae19a76bdb70788b..3ef51efc2b2fbaf6380e0c9597ffcf85636cd3cb 100644 --- a/game/modules/tome/data/general/objects/cloth-armors.lua +++ b/game/modules/tome/data/general/objects/cloth-armors.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 2, rarity = 5, desc = [[A cloth vestment. It offers no intrinsic protection but can be enchanted.]], - randart_able = { attack=10, physical=10, spell=80, def=20, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/robe.lua", egos_chance = { prefix=resolvers.mbonus(30, 15), suffix=resolvers.mbonus(30, 15) }, } diff --git a/game/modules/tome/data/general/objects/gauntlets.lua b/game/modules/tome/data/general/objects/gauntlets.lua index fdaba00a735d7c5d10ed1c4df29228d2ee10fa2d..1eae886fbdb29585c3b54608252678e42d642a42 100644 --- a/game/modules/tome/data/general/objects/gauntlets.lua +++ b/game/modules/tome/data/general/objects/gauntlets.lua @@ -32,7 +32,7 @@ newEntity{ rarity = 9, metallic = true, desc = [[Metal gloves protecting the hands up to the middle of the lower arm.]], - randart_able = { attack=10, physical=10, spell=10, def=40, misc=30 }, + randart_able = "/data/general/objects/random-artifacts/gloves.lua", egos = "/data/general/objects/egos/gloves.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/gloves.lua b/game/modules/tome/data/general/objects/gloves.lua index a876078b2f4eaf71eceda343c82ca27c9b8834a4..15300327ea0a291ece5d8b693cfc5ec0d6af12bd 100644 --- a/game/modules/tome/data/general/objects/gloves.lua +++ b/game/modules/tome/data/general/objects/gloves.lua @@ -30,7 +30,7 @@ newEntity{ encumber = 1, rarity = 9, desc = [[Light gloves which do not seriously hinder finger movements, while still protecting the hands somewhat.]], - randart_able = { attack=10, physical=10, spell=10, def=30, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/gloves.lua", egos = "/data/general/objects/egos/gloves.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/heavy-armors.lua b/game/modules/tome/data/general/objects/heavy-armors.lua index 5571fcab6f33bb5b791630b9165b22da778e1e21..688888f10fb289d6b2fbb44c3bcad7c47290d763 100644 --- a/game/modules/tome/data/general/objects/heavy-armors.lua +++ b/game/modules/tome/data/general/objects/heavy-armors.lua @@ -31,7 +31,7 @@ newEntity{ rarity = 5, metallic = true, desc = [[A suit of armour made of mail.]], - randart_able = { attack=10, physical=10, spell=10, def=80, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/heavy-armor.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/heavy-boots.lua b/game/modules/tome/data/general/objects/heavy-boots.lua index 5a45b032a3266bd64763e23e605fe34db863774c..9faa0783d518e085d9c66ef6b3d965d7f44542d2 100644 --- a/game/modules/tome/data/general/objects/heavy-boots.lua +++ b/game/modules/tome/data/general/objects/heavy-boots.lua @@ -31,7 +31,7 @@ newEntity{ rarity = 7, metallic = true, desc = [[Heavy boots, with metal strips at the toes, heels and other vulnerable parts, to better protect the wearer's feet from harm.]], - randart_able = { attack=10, physical=10, spell=10, def=40, misc=40 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/boots.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/helms.lua b/game/modules/tome/data/general/objects/helms.lua index 85aef1ad873ffab4f9eb2a29865eef28b679453f..3802525267fee95b33661c945de55be81653a701 100644 --- a/game/modules/tome/data/general/objects/helms.lua +++ b/game/modules/tome/data/general/objects/helms.lua @@ -31,7 +31,7 @@ newEntity{ rarity = 7, metallic = true, desc = [[A large helmet that can protect the entire head. Ventilation and bad vision can be a problem, however.]], - randart_able = { attack=20, physical=10, spell=10, def=50, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/helm.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/jewelry.lua b/game/modules/tome/data/general/objects/jewelry.lua index 75578335aa6ceff96e606605cae567fe4ba805ea..9d77b28faf7ce42f855c64ded6f4668f134bd430 100644 --- a/game/modules/tome/data/general/objects/jewelry.lua +++ b/game/modules/tome/data/general/objects/jewelry.lua @@ -25,7 +25,7 @@ newEntity{ encumber = 0.1, rarity = 6, desc = [[Rings can have magical properties.]], - randart_able = { attack=40, physical=40, spell=40, def=40, misc=40 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", -- Most rings are ego items egos = "/data/general/objects/egos/rings.lua", egos_chance = { prefix=resolvers.mbonus(50, 40), suffix=resolvers.mbonus(50, 40) }, egos_chance_decay = 0.5, } @@ -37,7 +37,7 @@ newEntity{ encumber = 0.1, rarity = 8, desc = [[Amulets can have magical properties.]], - randart_able = { attack=40, physical=40, spell=40, def=40, misc=40 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/amulets.lua", egos_chance = { prefix=resolvers.mbonus(50, 40), suffix=resolvers.mbonus(50, 40) }, egos_chance_decay = 0.5, } diff --git a/game/modules/tome/data/general/objects/knifes.lua b/game/modules/tome/data/general/objects/knifes.lua index 021ebc9e124c3fd613be4bbb1c4af5832ebd250d..54d7d452e42dca6d75a0185e93d3ec721f44888d 100644 --- a/game/modules/tome/data/general/objects/knifes.lua +++ b/game/modules/tome/data/general/objects/knifes.lua @@ -30,7 +30,7 @@ newEntity{ combat = { talented = "knife", damrange = 1.3, physspeed = 1, sound = {"actions/melee", pitch=1.2, vol=1.2}, sound_miss = {"actions/melee", pitch=1.2, vol=1.2} }, desc = [[Sharp, short and deadly.]], ego_bonus_mult = -0.2, - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/leather-belt.lua b/game/modules/tome/data/general/objects/leather-belt.lua index 6a4ad9008afed7870486cd38d5a237b87187eed4..f9a155725ddc97725efd673ac1c2f192c8925f7d 100644 --- a/game/modules/tome/data/general/objects/leather-belt.lua +++ b/game/modules/tome/data/general/objects/leather-belt.lua @@ -25,7 +25,7 @@ newEntity{ encumber = 1, rarity = 6, desc = [[A belt that goes around your waist.]], - randart_able = { attack=10, physical=10, spell=10, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/belt.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/leather-boots.lua b/game/modules/tome/data/general/objects/leather-boots.lua index 7e6aadc3eec89ea6966a91b5ec37f63d8ec1f940..6859f24338a67c61b3776466a658361a501680ac 100644 --- a/game/modules/tome/data/general/objects/leather-boots.lua +++ b/game/modules/tome/data/general/objects/leather-boots.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 2, rarity = 6, desc = [[A pair of boots made of leather.]], - randart_able = { attack=10, physical=10, spell=10, def=40, misc=30 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/light-boots.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/leather-caps.lua b/game/modules/tome/data/general/objects/leather-caps.lua index 2ab6ae96558720b41317356a6638dba5e7e3c425..ff755176dfccf47161ee9c126a9de207ab61150a 100644 --- a/game/modules/tome/data/general/objects/leather-caps.lua +++ b/game/modules/tome/data/general/objects/leather-caps.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 2, rarity = 6, desc = [[A cap made of leather.]], - randart_able = { attack=20, physical=10, spell=10, def=40, misc=30 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/helm.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/light-armors.lua b/game/modules/tome/data/general/objects/light-armors.lua index c0fbe55cb586380a59099903d1055c13937ac46c..8bdda813c1762474966ca6ea866cc885f396b3f5 100644 --- a/game/modules/tome/data/general/objects/light-armors.lua +++ b/game/modules/tome/data/general/objects/light-armors.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 9, rarity = 5, desc = [[A suit of armour made of leather.]], - randart_able = { attack=20, physical=20, spell=20, def=60, misc=40 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/light-armor.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/lites.lua b/game/modules/tome/data/general/objects/lites.lua index 86282d78f787e12a4d1e2f51673e6eb264a9511f..d6d0a1a94909145210496ce02b96590ca41e32bd 100644 --- a/game/modules/tome/data/general/objects/lites.lua +++ b/game/modules/tome/data/general/objects/lites.lua @@ -23,7 +23,7 @@ newEntity{ type = "lite", subtype="lite", image = resolvers.image_material("lite", {"brass","","dwarven","","faenorian"}), display = "~", desc = [[Light up the dark places of the world!]], - randart_able = { attack=10, physical=10, spell=10, def=30, misc=40 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/lite.lua", egos_chance = { prefix=resolvers.mbonus(15, 3), suffix=resolvers.mbonus(15, 3) }, } diff --git a/game/modules/tome/data/general/objects/maces.lua b/game/modules/tome/data/general/objects/maces.lua index 539a8c8fa7b853828322426853f74a884d6be88f..52ba31e6fdae726fd31d36c6a610d8b9525213b2 100644 --- a/game/modules/tome/data/general/objects/maces.lua +++ b/game/modules/tome/data/general/objects/maces.lua @@ -29,7 +29,7 @@ newEntity{ metallic = true, combat = { talented = "mace", damrange = 1.4, physspeed = 1, sound = {"actions/melee", pitch=0.6, vol=1.2}, sound_miss = {"actions/melee", pitch=0.6, vol=1.2}}, desc = [[Blunt and deadly.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/massive-armors.lua b/game/modules/tome/data/general/objects/massive-armors.lua index 8169fc9ece25e84e61c157630976276a06f76414..ea7e9c67847a243eb653a3398ca7f5cce9eb08ab 100644 --- a/game/modules/tome/data/general/objects/massive-armors.lua +++ b/game/modules/tome/data/general/objects/massive-armors.lua @@ -31,7 +31,7 @@ newEntity{ rarity = 5, metallic = true, desc = [[A suit of armour made of metal plates.]], - randart_able = { attack=10, physical=10, spell=10, def=80, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/massive-armor.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/mindstars.lua b/game/modules/tome/data/general/objects/mindstars.lua index 171b19141b9a136d2e5e8251e525f9a53fe5aa93..8a9bb4b545d157c9bc35b088a459d5f62e01c4d8 100644 --- a/game/modules/tome/data/general/objects/mindstars.lua +++ b/game/modules/tome/data/general/objects/mindstars.lua @@ -25,7 +25,7 @@ newEntity{ display = "!", color=colors.LIGHT_RED, image = resolvers.image_material("mindstar", "nature"), moddable_tile = resolvers.moddable_tile("mindstar"), psiblade_tile = "mindstar_psiblade_%s_01", - randart_able = { attack=10, physical=40, spell=1, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", encumber = 3, rarity = 4, power_source = {nature=true}, diff --git a/game/modules/tome/data/general/objects/random-artifacts/ammo.lua b/game/modules/tome/data/general/objects/random-artifacts/ammo.lua index 73a2da5a385484ca3c1b80b7eee8e2b2f04405be..ecdada0dd5329d8c003d845bd09fc34e919370e8 100644 --- a/game/modules/tome/data/general/objects/random-artifacts/ammo.lua +++ b/game/modules/tome/data/general/objects/random-artifacts/ammo.lua @@ -20,6 +20,8 @@ local Stats = require "engine.interface.ActorStats" local Talents = require "engine.interface.ActorTalents" +load("/data/general/objects/random-artifacts/generic.lua") + ---------------------------------------------------------------- -- Ammo Properties ---------------------------------------------------------------- @@ -99,7 +101,7 @@ newEntity{ theme={cold=true}, name="ice ranged", points = 1, rarity = 20, level_ combat = { ranged_project = {[DamageType.ICE] = resolvers.randartmax(1, 20), }, }, } newEntity{ theme={antimagic=true}, name="manaburn ranged", points = 1, rarity = 18, level_range = {1, 50}, - combat = { ranged_project = {[DamageType.MANA_BURN] = resolvers.randartmax(1, 20), }, }, + combat = { ranged_project = {[DamageType.MANABURN] = resolvers.randartmax(1, 20), }, }, } newEntity{ theme={nature=true, antimagic=true}, name="slime ranged", points = 1, rarity = 18, level_range = {1, 50}, combat = { ranged_project = {[DamageType.SLIME] = resolvers.randartmax(1, 20), }, }, diff --git a/game/modules/tome/data/general/objects/random-artifacts/gloves.lua b/game/modules/tome/data/general/objects/random-artifacts/gloves.lua index c7773b79e48d8d5964fbe55002be865b35f3fa19..b81f221d58b9aebe1e5f97199b202a08cf2dedfc 100644 --- a/game/modules/tome/data/general/objects/random-artifacts/gloves.lua +++ b/game/modules/tome/data/general/objects/random-artifacts/gloves.lua @@ -20,6 +20,8 @@ local Stats = require "engine.interface.ActorStats" local Talents = require "engine.interface.ActorTalents" +load("/data/general/objects/random-artifacts/generic.lua") + ---------------------------------------------------------------- -- Weapon Properties ---------------------------------------------------------------- diff --git a/game/modules/tome/data/general/objects/random-artifacts/melee.lua b/game/modules/tome/data/general/objects/random-artifacts/melee.lua index a7ab6f4db04258b25f935aa59033a695c584def3..d823960faf4ffab2ad37f2387c5fb4dc35bac0b8 100644 --- a/game/modules/tome/data/general/objects/random-artifacts/melee.lua +++ b/game/modules/tome/data/general/objects/random-artifacts/melee.lua @@ -20,6 +20,8 @@ local Stats = require "engine.interface.ActorStats" local Talents = require "engine.interface.ActorTalents" +load("/data/general/objects/random-artifacts/generic.lua") + ---------------------------------------------------------------- -- Weapon Properties ---------------------------------------------------------------- @@ -93,7 +95,7 @@ newEntity{ theme={cold=true}, name="ice melee", points = 1, rarity = 20, level_r combat = { melee_project = {[DamageType.ICE] = resolvers.randartmax(1, 20), }, }, } newEntity{ theme={antimagic=true}, name="manaburn melee", points = 1, rarity = 18, level_range = {1, 50}, - combat = { melee_project = {[DamageType.MANA_BURN] = resolvers.randartmax(1, 20), }, }, + combat = { melee_project = {[DamageType.MANABURN] = resolvers.randartmax(1, 20), }, }, } newEntity{ theme={nature=true, antimagic=true}, name="slime melee", points = 1, rarity = 18, level_range = {1, 50}, combat = { melee_project = {[DamageType.SLIME] = resolvers.randartmax(1, 20), }, }, diff --git a/game/modules/tome/data/general/objects/random-artifacts/shields.lua b/game/modules/tome/data/general/objects/random-artifacts/shields.lua index 617e6653501dafcb8146a923a06b6e8d01e3ce12..5084c4ecd6f748c6ace197e625e546dd335acdc0 100644 --- a/game/modules/tome/data/general/objects/random-artifacts/shields.lua +++ b/game/modules/tome/data/general/objects/random-artifacts/shields.lua @@ -20,6 +20,8 @@ local Stats = require "engine.interface.ActorStats" local Talents = require "engine.interface.ActorTalents" +load("/data/general/objects/random-artifacts/generic.lua") + ---------------------------------------------------------------- -- Weapon Properties ---------------------------------------------------------------- diff --git a/game/modules/tome/data/general/objects/shields.lua b/game/modules/tome/data/general/objects/shields.lua index 9d53a6d8d7da6361763e180818c6e727ef4fb7ae..00199ff01077cccada5fe5a25884935d08b21a52 100644 --- a/game/modules/tome/data/general/objects/shields.lua +++ b/game/modules/tome/data/general/objects/shields.lua @@ -31,7 +31,7 @@ newEntity{ metallic = true, desc = [[Handheld deflection devices]], require = { talent = { {Talents.T_ARMOUR_TRAINING,3} }, }, - randart_able = { attack=20, physical=10, spell=10, def=50, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/shields.lua", special_combat = { damrange = 1.2 }, egos = "/data/general/objects/egos/shield.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/slings.lua b/game/modules/tome/data/general/objects/slings.lua index bffdc094631c8649fd6a4114f37a0f0bffc24115..d1d62ca10db4e278e5fbfd442cd2828c7d5bffaf 100644 --- a/game/modules/tome/data/general/objects/slings.lua +++ b/game/modules/tome/data/general/objects/slings.lua @@ -32,7 +32,7 @@ newEntity{ require = { talent = { Talents.T_SHOOT }, }, proj_image = resolvers.image_material("shot_s", "metal"), desc = [[Slings are used to hurl stones or metal shots at your foes.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/sling.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } @@ -110,6 +110,7 @@ newEntity{ proj_image = resolvers.image_material("shot_s", "metal"), archery_ammo = "sling", desc = [[Shots are used with slings to pummel your foes to death.]], + randart_able = "/data/general/objects/random-artifacts/ammo.lua", egos = "/data/general/objects/egos/ammo.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, resolvers.shooter_capacity(), } diff --git a/game/modules/tome/data/general/objects/staves.lua b/game/modules/tome/data/general/objects/staves.lua index 7d1bc3308b3733ca5a84687f53a33a645c69e723..d5d0383c451925d49515f1f3a5e060ddb183e8eb 100644 --- a/game/modules/tome/data/general/objects/staves.lua +++ b/game/modules/tome/data/general/objects/staves.lua @@ -29,7 +29,7 @@ newEntity{ add_name = " (#COMBAT_DAMTYPE#)", display = "\\", color=colors.LIGHT_RED, image = resolvers.image_material("staff", "wood"), moddable_tile = resolvers.moddable_tile("staff"), - randart_able = { attack=10, physical=40, spell=80, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", encumber = 5, rarity = 4, combat = { diff --git a/game/modules/tome/data/general/objects/swords.lua b/game/modules/tome/data/general/objects/swords.lua index 852cba1fdce3c242daf4d947cc52251fa550690d..ab914760852efee9d6c2c7ec283edd31585d93d1 100644 --- a/game/modules/tome/data/general/objects/swords.lua +++ b/game/modules/tome/data/general/objects/swords.lua @@ -29,7 +29,7 @@ newEntity{ metallic = true, combat = { talented = "sword", damrange = 1.4, physspeed = 1, sound = {"actions/melee", pitch=0.6, vol=1.2}, sound_miss = {"actions/melee", pitch=0.6, vol=1.2}}, desc = [[Sharp, long, and deadly.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/melee.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/torques.lua b/game/modules/tome/data/general/objects/torques.lua index 95e685a07f5c9dab7fad3ad9f919718f81d5de31..aeefc995a833e1895cfa70a40504c874b2f3cf4f 100644 --- a/game/modules/tome/data/general/objects/torques.lua +++ b/game/modules/tome/data/general/objects/torques.lua @@ -31,7 +31,7 @@ newEntity{ egos = "/data/general/objects/egos/torques.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), suffix=resolvers.mbonus(20, 5) }, addons = "/data/general/objects/egos/torques-powers.lua", power_source = {psionic=true}, - randart_able = { misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", talent_cooldown = "T_GLOBAL_CD", } diff --git a/game/modules/tome/data/general/objects/totems.lua b/game/modules/tome/data/general/objects/totems.lua index f4dfb54ac137b235c41327fd2a6a7d0e7fa30bb6..b9a75961e2e0cea75fc97da44de3fa5d2d640c90 100644 --- a/game/modules/tome/data/general/objects/totems.lua +++ b/game/modules/tome/data/general/objects/totems.lua @@ -31,7 +31,7 @@ newEntity{ egos = "/data/general/objects/egos/totems.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), suffix=resolvers.mbonus(20, 5) }, addons = "/data/general/objects/egos/totems-powers.lua", power_source = {nature=true}, - randart_able = { misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", talent_cooldown = "T_GLOBAL_CD", } diff --git a/game/modules/tome/data/general/objects/wands.lua b/game/modules/tome/data/general/objects/wands.lua index a74926b3c34c979ea4799180d1db400e28a833e0..8bca508455cb34b8d5ab50f060be4cf2335c4716 100644 --- a/game/modules/tome/data/general/objects/wands.lua +++ b/game/modules/tome/data/general/objects/wands.lua @@ -31,7 +31,7 @@ newEntity{ egos = "/data/general/objects/egos/wands.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), }, addons = "/data/general/objects/egos/wands-powers.lua", power_source = {arcane=true}, - randart_able = { misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", talent_cooldown = "T_GLOBAL_CD", } diff --git a/game/modules/tome/data/general/objects/whips.lua b/game/modules/tome/data/general/objects/whips.lua index aca47a81d925935d2f3450fae1bda89d3dedd997..fa988e6781e6a820b48fe2fb5f14b7885cda4152 100644 --- a/game/modules/tome/data/general/objects/whips.lua +++ b/game/modules/tome/data/general/objects/whips.lua @@ -29,6 +29,6 @@ newEntity{ metallic = true, combat = { talented = "whip", damrange = 1.1, sound = "actions/melee", sound_miss = "actions/melee_miss",}, desc = [[Sharp, long and deadly.]], - randart_able = { attack=40, physical=80, spell=20, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/weapon.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, } diff --git a/game/modules/tome/data/general/objects/wizard-hat.lua b/game/modules/tome/data/general/objects/wizard-hat.lua index dcc67840237837d329ef8fcc3a8ab82ad6f0dcc4..9fd9a20d67db0cbefdf6ee3d490e386883de0075 100644 --- a/game/modules/tome/data/general/objects/wizard-hat.lua +++ b/game/modules/tome/data/general/objects/wizard-hat.lua @@ -27,7 +27,7 @@ newEntity{ encumber = 2, rarity = 6, desc = [[A pointy cloth hat, very wizardly...]], - randart_able = { attack=10, physical=10, spell=80, def=10, misc=10 }, + randart_able = "/data/general/objects/random-artifacts/generic.lua", egos = "/data/general/objects/egos/wizard-hat.lua", egos_chance = { prefix=resolvers.mbonus(40, 5), suffix=resolvers.mbonus(40, 5) }, }