diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua index e24a23e1ab83f264f103361770571265c8ea354d..d6d36fc05dea7e706e0741d967a65ff8e8b9c2d4 100644 --- a/game/engines/default/engine/Zone.lua +++ b/game/engines/default/engine/Zone.lua @@ -256,7 +256,7 @@ end --- Find a given entity and resolve it -- @return the fully resolved entity, ready to be used on a level. Or nil if a filter was given an nothing found -function _M:makeEntityByName(level, type, name) +function _M:makeEntityByName(level, type, name, force_unique) resolvers.current_level = self.base_level + level.level - 1 local e @@ -267,11 +267,19 @@ function _M:makeEntityByName(level, type, name) end if not e then return nil end - if e.unique and game.uniques[e.__CLASSNAME.."/"..e.unique] then print("refused unique", e.name, e.__CLASSNAME.."/"..e.unique) return nil end + local forced = false + if e.unique and game.uniques[e.__CLASSNAME.."/"..e.unique] then + if not force_unique then + print("refused unique", e.name, e.__CLASSNAME.."/"..e.unique) + return nil + else + forced = true + end + end e = self:finishEntity(level, type, e) - return e + return e, forced end --- Finishes generating an entity diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 87464626a18a413a9dd0037db31ea4cdc215f2ba..f869c9f804e0b9c0a98ca93123eaf9be068d30f0 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -749,7 +749,7 @@ function _M:die(src) for i, o in ipairs(inven) do -- Handle boss wielding artifacts if o.__special_boss_drop and rng.percent(o.__special_boss_drop.chance) then - print("Refusing to drop "..self.name.." artifact "..o.name) + print("Refusing to drop "..self.name.." artifact "..o.name.." with chance "..o.__special_boss_drop.chance) -- Do not drop o.no_drop = true @@ -757,9 +757,6 @@ function _M:die(src) -- Drop a random artifact instead local ro = game.zone:makeEntity(game.level, "object", {unique=true}, nil, true) if ro then game.zone:addEntity(game.level, ro, "object", self.x, self.y) end - - -- Add to the pool - game.state:addWorldArtifact(o.define_as, o.__special_boss_drop) end if not o.no_drop then diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua new file mode 100644 index 0000000000000000000000000000000000000000..b413f88e1c6acfbee3b4f3dfa99f28c694d2a2c4 --- /dev/null +++ b/game/modules/tome/data/general/objects/boss-artifacts.lua @@ -0,0 +1,658 @@ +-- ToME - Tales of Middle-Earth +-- Copyright (C) 2009, 2010 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +local Stats = require "engine.interface.ActorStats" +local Talents = require "engine.interface.ActorTalents" + +-- This file describes artifacts associated with a boss of the game, they have a high chance of dropping their respective ones, but they can still be found elsewhere + +newEntity{ base = "BASE_LONGSWORD", + define_as = "LONGSWORD_RINGIL", rarity=false, unided_name = "glittering longsword", + name = "Ringil, the glittering sword of Fingolfin", unique=true, + desc = [[The sword of Fingolfin, said to have glittered like ice. With it he wounded Morgoth in single combat after the Dagor Bragollach.]], + require = { stat = { str=35 }, }, + level_range = {35, 45}, + rarity = 280, + cost = 2000, + material_level = 5, + combat = { + dam = 45, + apr = 10, + physcrit = 10, + dammod = {str=1}, + damrange = 1.4, + }, + wielder = { + lite = 1, + see_invisible = 2, + resists={[DamageType.COLD] = 25}, + inc_damage = { [DamageType.COLD] = 20 }, + melee_project={[DamageType.ICE] = 15}, + }, + max_power = 18, power_regen = 1, + use_power = { name = "generate a burst of ice", power = 8, + use = function(self, who) + local tg = {type="ball", range=0, radius=4, friendlyfire=false} + who:project(tg, who.x, who.y, engine.DamageType.ICE, 10 + (who:getMag() + who:getWil()) / 2, {type="freeze"}) + game:playSoundNear(who, "talents/ice") + game.logSeen(who, "%s invokes the power of Ringil!", who.name:capitalize()) + return true + end + }, +} + +newEntity{ base = "BASE_LITE", define_as = "UNDEATH_PHIAL", + unided_name = "phial filled with darkness", unique = true, + name = "Phial of Undead", color=colors.DARK_GREY, + desc = [[This phial seems filled with darkness, yet it cleanses your thoughts.]], + level_range = {1, 10}, + rarity = 220, + encumber = 2, + cost = 50, + material_level = 2, + + wielder = { + lite = 1, + infravision = 6, + }, +} + +newEntity{ base = "BASE_AMULET", + define_as = "FIERY_CHOKER", rarity=false, + name = "Fiery Choker", unique=true, + desc = [[A choker made of pure flame, forever shifting patterns around the neck of its wearer. Its fire seems to not harm the wearer.]], + level_range = {32, 42}, + rarity = 220, + cost = 50, + wielder = { + inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 }, + combat_spellpower = 7, + combat_spellcrit = 8, + resists = { + [DamageType.FIRE] = 20, + [DamageType.COLD] = -20, + }, + inc_damage={ + [DamageType.FIRE] = 10, + [DamageType.COLD] = -5, + }, + blind_immune = 1, + }, +} + +-- Artifact, droped by Rantha +newEntity{ base = "BASE_LEATHER_BOOT", + define_as = "FROST_TREADS", + name = "Frost Treads", unique=true, + desc = [[A pair of leather boots. Cold to the touch, they radiate a cold blue light.]], + require = { stat = { dex=16 }, }, + level_range = {10, 18}, + rarity = 220, + cost = 40, + + wielder = { + lite = 1, + combat_armor = 2, + combat_def = 1, + fatigue = 14, + inc_damage = { + [DamageType.COLD] = 5, + }, + resists = { + [DamageType.COLD] = 20, + [DamageType.NATURE] = 10, + }, + inc_stats = { [Stats.STAT_STR] = 4, [Stats.STAT_DEX] = 4, [Stats.STAT_CUN] = 4, }, + }, +} + +newEntity{ base = "BASE_HELM", + define_as = "RUNED_SKULL", + name = "Dragonskull Helm", unique=true, unided_name="skull helm", + desc = [[Traces of a dragon's power still remain in this bleached and cracked skull.]], + require = { stat = { mag=24 }, }, + level_range = {45, 50}, + rarity = 280, + cost = 200, + + wielder = { + resists = { + [DamageType.FIRE] = 15, + [DamageType.COLD] = 15, + [DamageType.LIGHTNING] = 15, + }, + esp = {dragon=1}, + combat_armor = 2, + fatigue = 12, + combat_physresist = 12, + combat_mentalresist = 12, + combat_spellresist = 12, + }, +} + +newEntity{ base = "BASE_TRIDENT", + define_as = "TRIDENT_TIDES", + name = "Trident of the Tides", unique=true, + desc = [[As you wield this trident you can feel the power of the tides rushing through your arms. +Tridents require the exotic weapons mastery talent to correctly use.]], + require = { stat = { str=35 }, }, + level_range = {30, 40}, + rarity = 230, + cost = 300, + material_level = 4, + combat = { + dam = 50, + atk = 10, + apr = 4, + physcrit = 15, + dammod = {str=1.3}, + damrange = 1.4, + }, + + wielder = { + combat_spellresist = 18, + see_invisible = 2, + resists={[DamageType.COLD] = 25}, + inc_damage = { [DamageType.COLD] = 20 }, + melee_project={ + [DamageType.COLD] = 15, + [DamageType.NATURE] = 20, + }, + }, + + max_power = 150, power_regen = 1, + use_talent = { id = Talents.T_WATER_BOLT, level=3, power = 60 }, +} + +newEntity{ base = "BASE_LIGHT_ARMOR", + define_as = "CHROMATIC_HARNESS", rarity=false, + name = "Chromatic Harness", unique=true, + unided_name = "multi-hued leather armour", color=colors.VIOLET, + desc = [[This leather harness shines of multiple colors, quickly shifting through them in a seemingly chaotic manner.]], + level_range = {40, 50}, + rarity = 280, + cost = 500, + material_level = 5, + wielder = { + talent_cd_reduction={[Talents.T_ICE_BREATH]=3, [Talents.T_FIRE_BREATH]=3, [Talents.T_SAND_BREATH]=3, }, + inc_stats = { [Stats.STAT_WIL] = 6, [Stats.STAT_CUN] = 4, [Stats.STAT_DEX] = 3, [Stats.STAT_LCK] = 10, }, + poison_immune = 0.7, + combat_armor = 10, + esp = { dragon = 1 }, + fatigue = 10, + }, +} + +newEntity{ base = "BASE_RING", + define_as = "PRIDE_GLORY", rarity=false, + name = "Glory of the Pride", unique=true, + desc = [[The most prized treasure of the Battlemaster of the Pride, Grushnak. This gold ring is incribed in the orc tongue, the black speech.]], + unided_name = "deep black ring", + level_range = {40, 50}, + rarity = 280, + cost = 500, + material_level = 5, + wielder = { + max_mana = -40, + max_stamina = 40, + stun_immune = 1, + confusion_immune = 1, + combat_atk = 10, + combat_dam = 10, + combat_def = 5, + combat_armor = 10, + fatigue = -15, + talent_cd_reduction={ + [Talents.T_RUSH]=15, + }, + inc_damage={ [DamageType.PHYSICAL] = 8, }, + }, +} + +newEntity{ base = "BASE_HELM", + define_as = "HELM_OF_HAMMERHAND", + name = "Steel Helm of Hammerhand", unique=true, + desc = [[A great helm as steady as the heroes of the Westdike. Mighty were the blows of Helm, the Hammerhand!]], + require = { stat = { str=16 }, }, + level_range = {12, 22}, + rarity = 200, + cost = 20, + + wielder = { + combat_armor = 4, + fatigue = 8, + inc_stats = { [Stats.STAT_STR] = 3, [Stats.STAT_CON] = 3, [Stats.STAT_WIL] = 4 }, + combat_physresist = 7, + combat_mentalresist = 7, + combat_spellresist = 7, + }, +} + +newEntity{ base = "BASE_SHIELD", + define_as = "LUNAR_SHIELD", + unique = true, + name = "Lunar Shield", + unided_name = "chitinous shield", + desc = [[A large section of chitin removed from Nimisil. It continues to give off a strange white glow.]], + color = colors.YELLOW, + metallic = false, + require = { stat = { str=35 }, }, + level_range = {40, 50}, + rarity = 280, + cost = 350, + material_level = 5, + special_combat = { + dam = 45, + physcrit = 10, + dammod = {str=1}, + damtype = DamageType.ARCANE, + }, + wielder = { + resists={[DamageType.DARKNESS] = 25}, + inc_damage={[DamageType.DARKNESS] = 15}, + + combat_armor = 7, + combat_def = 12, + combat_def_ranged = 5, + fatigue = 12, + + lite = 1, + talents_types_mastery = {["divine/star-fury"]=0.2,["divine/twilight"]=0.1,}, + }, +} + +newEntity{ base = "BASE_SHIELD", + define_as = "OLD_MAN_WILLOW_SHIELD", + name = "Old Man Willow's Barkwood", unique=true, + desc = [[The barkwood of the Old Man's Willow, made into roughly the shape of a shield.]], + require = { stat = { str=25 }, }, + level_range = {12, 2}, + rarity = 200, + cost = 20, + rarity = false, + metallic = false, + + special_combat = { + dam = resolvers.rngavg(20,30), + physcrit = 2, + dammod = {str=1.5}, + }, + wielder = { + combat_armor = 5, + combat_def = 9, + fatigue = 14, + resists = { + [DamageType.FIRE] = -20, + [DamageType.COLD] = 20, + [DamageType.NATURE] = 20, + }, + }, +} + +newEntity{ base = "BASE_GEM", + unique = true, define_as = "PETRIFIED_WOOD", + unided_name = "burned piece of wood", + name = "Petrified Wood", subtype = "black", + color = colors.WHITE, image="object/bloodstone.png", + level_range = {35, 45}, + rarity = 280, + desc = [[A piece of the scorched wood took from the remains of Snaproot.]], + rarity = false, + cost = 100, + material_level = 5, + imbue_powers = { + resists = { [DamageType.NATURE] = 25, [DamageType.FIRE] = -10, [DamageType.COLD] = 10 }, + inc_stats = { [Stats.STAT_CON] = 10, }, + }, +} + +newEntity{ base = "BASE_CLOTH_ARMOR", + define_as = "BLACK_ROBE", rarity=false, + name = "Black Robe", unique=true, + unided_name = "black robe", color=colors.DARK_GREY, + desc = [[A silk robe, darker than the darkest night sky, it radiates power.]], + level_range = {40, 50}, + rarity = 280, + cost = 500, + wielder = { + inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 }, + see_invisible = 10, + blind_immune = 1, + combat_spellpower = 10, + combat_dam = 10, + combat_def = 6, + }, +} + +newEntity{ base = "BASE_WARAXE", + define_as = "MALEDICTION", rarity=false, + unided_name = "pestilent waraxe", + name = "Malediction", unique=true, + desc = [[The land withers and crumbles wherever this cursed axe rests.]], + require = { stat = { str=55 }, }, + level_range = {35, 45}, + rarity = 290, + cost = 375, + combat = { + dam = 55, + apr = 15, + physcrit = 10, + dammod = {str=1}, + damrange = 1.2, + }, + wielder = { + life_regen = -0.3, + inc_damage = { [DamageType.BLIGHT] = 20 }, + melee_project={[DamageType.BLIGHT] = 20}, + }, +} + +newEntity{ base = "BASE_STAFF", + define_as = "STAFF_KOR", rarity=false, + name = "Kor's Fall", unique=true, + desc = [[Made from the bones of of many creatures this staff glows with power. You can feel its evilness as you touch it.]], + require = { stat = { mag=25 }, }, + level_range = {1, 10}, + rarity = 200, + cost = 5, + combat = { + dam = 10, + apr = 0, + physcrit = 1.5, + dammod = {mag=1.1}, + }, + wielder = { + see_invisible = 2, + combat_spellpower = 7, + combat_spellcrit = 8, + inc_damage={ + [DamageType.FIRE] = 4, + [DamageType.COLD] = 4, + [DamageType.ACID] = 4, + [DamageType.LIGHTNING] = 4, + [DamageType.BLIGHT] = 4, + }, + }, +} + +newEntity{ base = "BASE_AMULET", + define_as = "VOX", rarity=false, + name = "Vox", unique=true, + unided_name = "ringing amulet", color=colors.BLUE, + desc = [[No force can hope to silence the wearer of this amulet.]], + level_range = {40, 50}, + rarity = 220, + cost = 3000, + wielder = { + see_invisible = 20, + silence_immune = 0.8, + combat_spellpower = 9, + combat_spellcrit = 4, + mana = 50, + vim = 50, + }, +} + +newEntity{ base = "BASE_STAFF", + define_as = "TELOS_TOP_HALF", rarity=false, + slot_forbid = false, + twohanded = false, + name = "Telos's Staff (Top Half)", unique=true, + desc = [[The top part of Telos's broken staff.]], + require = { stat = { mag=35 }, }, + level_range = {40, 50}, + rarity = 210, + encumberance = 2.5, + cost = 500, + combat = { + dam = 35, + apr = 0, + physcrit = 1.5, + dammod = {mag=1.0}, + }, + wielder = { + combat_spellpower = 25, + combat_spellcrit = 5, + combat_mentalresist = 8, + inc_stats = { [Stats.STAT_WIL] = 5, }, + }, +} + +newEntity{ base = "BASE_AMULET", + define_as = "AMULET_DREAD", rarity=false, + name = "Choker of Dread", unique=true, + unided_name = "dark amulet", color=colors.LIGHT_DARK, + desc = [[The evilness of undeath radiates from this amulet.]], + level_range = {20, 28}, + rarity = 220, + cost = 5000, + wielder = { + see_invisible = 10, + blind_immune = 1, + combat_spellpower = 5, + combat_dam = 5, + }, + max_power = 60, power_regen = 1, + use_power = { name = "summon an elder vampire to your side", power = 60, use = function(self, who) + if not who:canBe("summon") then game.logPlayer(who, "You can not summon, you are suppressed!") return end + + -- Find space + local x, y = util.findFreeGrid(who.x, who.y, 5, true, {[engine.Map.ACTOR]=true}) + if not x then + game.logPlayer(who, "Not enough space to invoke the vampire!") + return + end + print("Invoking guardian on", x, y) + + local NPC = require "mod.class.NPC" + local vampire = NPC.new{ + type = "undead", subtype = "vampire", + display = "V", + name = "elder vampire", color=colors.RED, + desc=[[A terrible robed undead figure, this creature has existed in its unlife for many centuries by stealing the life of others. It can + summon the very shades of its victims from beyond the grave to come enslaved to its aid.]], + + combat = { dam=resolvers.rngavg(9,13), atk=10, apr=9, damtype=engine.DamageType.DRAINLIFE, dammod={str=1.9} }, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + + autolevel = "warriormage", + ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, }, + energy = { mod=1 }, + stats = { str=12, dex=12, mag=12, con=12 }, + life_regen = 3, + size_category = 3, + rank = 3, + infravision = 20, + + inc_damage = table.clone(who.inc_damage, true), + + resolvers.tmasteries{ ["technique/other"]=0.5, ["spell/phantasm"]=0.8, }, + + resists = { [engine.DamageType.COLD] = 80, [engine.DamageType.NATURE] = 80, [engine.DamageType.LIGHT] = -50, }, + blind_immune = 1, + confusion_immune = 1, + see_invisible = 5, + undead = 1, + + level_range = {who.level, who.level}, exp_worth = 0, + max_life = resolvers.rngavg(90,100), + combat_armor = 12, combat_def = 10, + resolvers.talents{ [who.T_STUN]=2, [who.T_BLUR_SIGHT]=3, [who.T_PHANTASMAL_SHIELD]=2, [who.T_ROTTING_DISEASE]=3, }, + + faction = who.faction, + summoner = who, + summon_time = 10, + } + + vampire:resolve() + game.zone:addEntity(game.level, vampire, "actor", x, y) + + game:playSoundNear(who, "talents/spell_generic") + end }, +} + +newEntity{ define_as = "RUNED_SKULL", + unique = true, + type = "gem", subtype="red", + unided_name = "human skull", + name = "Runed Skull", + display = "*", color=colors.RED, + level_range = {40, 50}, + rarity = 390, + encumber = 3, + desc = [[Dull red runes are etched all over this blackened skull.]], + + carrier = { + combat_spellpower = 7, + on_melee_hit = {[DamageType.FIREKNOCKBACK]=25}, + }, +} + +newEntity{ base = "BASE_GREATMAUL", + define_as = "GREATMAUL_BILL_TRUNK", + name = "Bill's Tree Trunk", unique=true, + desc = [[This is a big nasty looking tree trunk that Bill was using as a weapon. It could still serve this purpose, should you be strong enough to wield it!]], + require = { stat = { str=25 }, }, + level_range = {1, 10}, + rarity = 200, + metallic = false, + cost = 5, + combat = { + dam = 30, + apr = 7, + physcrit = 1.5, + dammod = {str=1.3}, + damrange = 1.7, + }, + + wielder = { + }, +} + + +newEntity{ base = "BASE_SHIELD", + define_as = "SANGUINE_SHIELD", + unided_name = "bloody shield", + name = "Sanguine Shield", unique=true, + desc = [[Though tarnished and spattered with blood, the emblem of the sun still manages to shine through on this shield.]], + require = { stat = { str=39 }, }, + level_range = {35, 45}, + rarity = 240, + cost = 120, + + special_combat = { + dam = 40, + physcrit = 9, + dammod = {str=1.2}, + }, + wielder = { + combat_armor = 4, + combat_def = 14, + combat_def_ranged = 14, + inc_stats = { [Stats.STAT_CON] = 5, }, + fatigue = 19, + resists = { [DamageType.BLIGHT] = 25, }, + life_regen = 5, + }, +} + +newEntity{ base = "BASE_WHIP", + define_as = "WHIP_GOTHMOG", + unided_name = "fiery whip", + name = "Whip of Gothmog, High Captain of the Balrogs", color=colors.PURPLE, unique = true, + desc = [[With this unbearably bright whip of flame, the Balrog Gothmog has become known for never having lost in combat. +But nothing lasts forever and he was finally defeated by Echtelion in the First Age. His whip must have been taken by the other balrogs from his corpse.]], + require = { stat = { dex=48 }, }, + level_range = {40, 50}, + rarity = 390, + cost = 250, + material_level = 5, + combat = { + dam = resolvers.rngavg(40,45), + apr = 0, + physcrit = 9, + dammod = {dex=1}, + damtype = DamageType.FIREKNOCKBACK, + }, + wielder = { + esp = {["demon/minor"]=1, ["demon/major"]=1}, + see_invisible = 2, + }, + carrier = { + inc_damage={ + [DamageType.BLIGHT] = 8, + }, + }, +} + +newEntity{ base = "BASE_GREATSWORD", + define_as = "MURDERBLADE", rarity=false, + name = "Warmaster Gnarg's Murderblade", unique=true, + unided_name = "blood-etched greatsword", color=colors.CRIMSON, + desc = [[A blood etched greatsword, it has seen many foes. From the inside.]], + require = { stat = { str=35 }, }, + level_range = {35, 45}, + rarity = 230, + cost = 300, + material_level = 5, + combat = { + dam = 54, + apr = 19, + physcrit = 4.5, + dammod = {str=1.2}, + }, + wielder = { + see_invisible = 25, + inc_stats = { [Stats.STAT_CON] = 5, [Stats.STAT_STR] = 5, [Stats.STAT_DEX] = 5, }, + talents_types_mastery = { + ["technique/2hweapon-cripple"] = 0.2, + ["technique/2hweapon-offense"] = 0.2, + }, + }, +} + +newEntity{ base = "BASE_LEATHER_CAP", + define_as = "CROWN_ELEMENTS", rarity=false, + name = "Crown of the Elements", unique=true, + unided_name = "jeweled crown", color=colors.DARK_GREY, + desc = [[Jeweled crown]], + level_range = {40, 50}, + rarity = 280, + cost = 500, + material_level = 5, + wielder = { + inc_stats = { [Stats.STAT_CON] = 5, [Stats.STAT_WIL] = 3, }, + resists={ + [DamageType.FIRE] = 15, + [DamageType.COLD] = 15, + [DamageType.ACID] = 15, + [DamageType.LIGHTNING] = 15, + }, + melee_project={ + [DamageType.FIRE] = 10, + [DamageType.COLD] = 10, + [DamageType.ACID] = 10, + [DamageType.LIGHTNING] = 10, + }, + see_invisible = 15, + combat_armor = 5, + fatigue = 5, + }, +} diff --git a/game/modules/tome/data/general/objects/objects.lua b/game/modules/tome/data/general/objects/objects.lua index b17183bd620b9755c503d4fdab31a6041a335e38..77ac26570961cc9d7d1db7f97951543f0305d0fa 100644 --- a/game/modules/tome/data/general/objects/objects.lua +++ b/game/modules/tome/data/general/objects/objects.lua @@ -86,3 +86,4 @@ loadIfNot("/data/general/objects/lore/spellhunt.lua") loadIfNot("/data/general/objects/world-artifacts.lua") loadIfNot("/data/general/objects/quest-artifacts.lua") loadIfNot("/data/general/objects/special-artifacts.lua") +loadIfNot("/data/general/objects/boss-artifacts.lua") diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index 560e6c8725bfd5f4a6671e171c2cdd9e442d81e9..dad6631fba6e9c4e5f537e73d43c67295648215d 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -30,7 +30,7 @@ end newEntity{ base = "BASE_STAFF", unique = true, name = "Staff of Destruction", - unided_name = "ash staff", + unided_name = "darkness infused staff", level_range = {20, 25}, color=colors.VIOLET, rarity = 100, diff --git a/game/modules/tome/data/zones/ancient-elven-ruins/npcs.lua b/game/modules/tome/data/zones/ancient-elven-ruins/npcs.lua index 6174ba57c7ce4afe6fb37aab64921ac46357a9cb..96826c4a4d92c8ad125295f7dbd4cf3baf202cf5 100644 --- a/game/modules/tome/data/zones/ancient-elven-ruins/npcs.lua +++ b/game/modules/tome/data/zones/ancient-elven-ruins/npcs.lua @@ -46,7 +46,7 @@ newEntity{ define_as = "GREATER_MUMMY_LORD", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, HEAD=1, }, equipment = resolvers.equip{ - {type="weapon", subtype="longsword", defined="LONGSWORD_RINGIL", random_art_replace={chance=75, rarity=280, level_range={35, 45}}, autoreq=true}, + {type="weapon", subtype="longsword", defined="LONGSWORD_RINGIL", random_art_replace={chance=75}}, autoreq=true}, {type="armor", subtype="shield", ego_chance=100, autoreq=true}, {type="armor", subtype="mummy", ego_chance=100, autoreq=true}, }, diff --git a/game/modules/tome/data/zones/ancient-elven-ruins/objects.lua b/game/modules/tome/data/zones/ancient-elven-ruins/objects.lua index 62a9c0307c9995a1455e3bb61c7ed5db8c5c0759..b3015b7619007a0b638821dd4c38cc14ab8550cd 100644 --- a/game/modules/tome/data/zones/ancient-elven-ruins/objects.lua +++ b/game/modules/tome/data/zones/ancient-elven-ruins/objects.lua @@ -23,39 +23,6 @@ load("/data/general/objects/mummy-wrappings.lua") local Stats = require "engine.interface.ActorStats" local Talents = require "engine.interface.ActorTalents" -newEntity{ base = "BASE_LONGSWORD", - define_as = "LONGSWORD_RINGIL", rarity=false, unided_name = "glittering longsword", - name = "Ringil, the glittering sword of Fingolfin", unique=true, - desc = [[The sword of Fingolfin, said to have glittered like ice. With it he wounded Morgoth in single combat after the Dagor Bragollach.]], - require = { stat = { str=35 }, }, - cost = 2000, - material_level = 5, - combat = { - dam = 45, - apr = 10, - physcrit = 10, - dammod = {str=1}, - damrange = 1.4, - }, - wielder = { - lite = 1, - see_invisible = 2, - resists={[DamageType.COLD] = 25}, - inc_damage = { [DamageType.COLD] = 20 }, - melee_project={[DamageType.ICE] = 15}, - }, - max_power = 18, power_regen = 1, - use_power = { name = "generate a burst of ice", power = 8, - use = function(self, who) - local tg = {type="ball", range=0, radius=4, friendlyfire=false} - who:project(tg, who.x, who.y, engine.DamageType.ICE, 10 + (who:getMag() + who:getWil()) / 2, {type="freeze"}) - game:playSoundNear(who, "talents/ice") - game.logSeen(who, "%s invokes the power of Ringil!", who.name:capitalize()) - return true - end - }, -} - -- Random artifact newEntity{ base = "BASE_MUMMY_WRAPPING", unique = true, @@ -81,3 +48,4 @@ newEntity{ base = "BASE_MUMMY_WRAPPING", max_power = 80, power_regen = 1, use_talent = { id = Talents.T_SPIT_POISON, level = 2, power = 50 }, } + diff --git a/game/modules/tome/data/zones/blighted-ruins/npcs.lua b/game/modules/tome/data/zones/blighted-ruins/npcs.lua index 74e41a1aa2718c623a5ab4febe9791ceffad8727..d7c356d5a5f44cb7b9ac80acbb9731d38ef18121 100644 --- a/game/modules/tome/data/zones/blighted-ruins/npcs.lua +++ b/game/modules/tome/data/zones/blighted-ruins/npcs.lua @@ -83,7 +83,7 @@ This specimen look like it was hastily assembled and is not really complete yet. resolvers.sustains_at_birth(), resolvers.drops{chance=100, nb=3, {ego_chance=100} }, - resolvers.drops{chance=100, nb=1, {defined="UNDEATH_PHIAL", random_art_replace={chance=75, rarity=150, level_range={1, 10}}} }, + resolvers.drops{chance=100, nb=1, {defined="UNDEATH_PHIAL", random_art_replace={chance=75}}} }, ai = "dumb_talented_simple", ai_state = { talent_in=4, ai_move="move_astar", }, diff --git a/game/modules/tome/data/zones/blighted-ruins/objects.lua b/game/modules/tome/data/zones/blighted-ruins/objects.lua index 4a8ae637cd1091ca74d40ed1f22f03c660222175..96c2416da8970e8d426f1679fb68c1ea26a112c2 100644 --- a/game/modules/tome/data/zones/blighted-ruins/objects.lua +++ b/game/modules/tome/data/zones/blighted-ruins/objects.lua @@ -52,18 +52,3 @@ newEntity{ define_as = "CLOAK_DECEPTION", who:setQuestStatus("start-undead", engine.Quest.COMPLETED, "black-cloak") end, } - -newEntity{ base = "BASE_LITE", define_as = "UNDEATH_PHIAL", - unided_name = "phial filled with darkness", unique = true, - name = "Phial of Undead", color=colors.DARK_GREY, - desc = [[This phial seems filled with darkness, yet it cleanses your thoughts.]], - rarity = false, - encumber = 2, - cost = 50, - material_level = 2, - - wielder = { - lite = 1, - infravision = 6, - }, -} diff --git a/game/modules/tome/data/zones/charred-scar/npcs.lua b/game/modules/tome/data/zones/charred-scar/npcs.lua index 15fbfd04a3fd378b1968c947012c56728199b155..439b0b9fae0806f6f709bfb75b422fc435b5af3c 100644 --- a/game/modules/tome/data/zones/charred-scar/npcs.lua +++ b/game/modules/tome/data/zones/charred-scar/npcs.lua @@ -276,7 +276,7 @@ This one looks even nastier and looks toward you with what seems to be disdain. ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar" }, resolvers.equip{ - {type="jewelry", subtype="amulet", defined="FIERY_CHOKER", random_art_replace={chance=75, rarity=200, level_range={35, 45}}}, + {type="jewelry", subtype="amulet", defined="FIERY_CHOKER", random_art_replace={chance=75}}, }, resolvers.drops{chance=20, nb=1, {defined="JEWELER_TOME"} }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/charred-scar/objects.lua b/game/modules/tome/data/zones/charred-scar/objects.lua index e1d22277472c6f841e44abe5f7bc21f6e53d0655..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/charred-scar/objects.lua +++ b/game/modules/tome/data/zones/charred-scar/objects.lua @@ -18,26 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -local Stats = require"engine.interface.ActorStats" - -newEntity{ base = "BASE_AMULET", - define_as = "FIERY_CHOKER", rarity=false, - name = "Fiery Choker", unique=true, - desc = [[A choker made of pure flame, forever shifting patterns around the neck of its wearer. Its fire seems to not harm the wearer.]], - cost = 50, - wielder = { - inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 }, - combat_spellpower = 7, - combat_spellcrit = 8, - resists = { - [DamageType.FIRE] = 20, - [DamageType.COLD] = -20, - }, - inc_damage={ - [DamageType.FIRE] = 10, - [DamageType.COLD] = -5, - }, - blind_immune = 1, - }, -} diff --git a/game/modules/tome/data/zones/daikara/npcs.lua b/game/modules/tome/data/zones/daikara/npcs.lua index 2e5c5f8842bab664a067324727754ba9cd247ef3..925bb3109534789914ea02fe96a7f84d0f5fb429 100644 --- a/game/modules/tome/data/zones/daikara/npcs.lua +++ b/game/modules/tome/data/zones/daikara/npcs.lua @@ -47,7 +47,7 @@ newEntity{ define_as = "RANTHA_THE_WORM", resists = { [DamageType.FIRE] = -20, [DamageType.COLD] = 100 }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - resolvers.drops{chance=100, nb=1, {defined="FROST_TREADS", random_art_replace={chance=75, rarity=150, level_range={12, 22}}}, }, + resolvers.drops{chance=100, nb=1, {defined="FROST_TREADS", random_art_replace={chance=75}}, }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, resolvers.drops{chance=100, nb=10, {type="money"} }, @@ -101,7 +101,7 @@ newEntity{ base="BASE_NPC_ORC_GRUSHNAK", define_as = "MASSOK", resolvers.equip{ {type="weapon", subtype="battleaxe", ego_change=100, autoreq=true}, {type="armor", subtype="massive", ego_chance=100, autoreq=true}, - {type="armor", subtype="head", defined="RUNED_SKULL", random_art_replace={chance=75, rarity=250, level_range={45, 50}}, autoreq=true}, + {type="armor", subtype="head", defined="RUNED_SKULL", random_art_replace={chance=75}, autoreq=true}, {type="armor", subtype="feet", ego_chance=100, autoreq=true}, }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/daikara/objects.lua b/game/modules/tome/data/zones/daikara/objects.lua index 98dcc59189611915a86118f92658df2386db0a31..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/daikara/objects.lua +++ b/game/modules/tome/data/zones/daikara/objects.lua @@ -18,51 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -local Stats = require "engine.interface.ActorStats" - --- Artifact, droped by Rantha -newEntity{ base = "BASE_LEATHER_BOOT", - define_as = "FROST_TREADS", - name = "Frost Treads", unique=true, - desc = [[A pair of leather boots. Cold to the touch, they radiate a cold blue light.]], - require = { stat = { dex=16 }, }, - cost = 40, - - wielder = { - lite = 1, - combat_armor = 2, - combat_def = 1, - fatigue = 14, - inc_damage = { - [DamageType.COLD] = 5, - }, - resists = { - [DamageType.COLD] = 20, - [DamageType.NATURE] = 10, - }, - inc_stats = { [Stats.STAT_STR] = 4, [Stats.STAT_DEX] = 4, [Stats.STAT_CUN] = 4, }, - }, -} - -newEntity{ base = "BASE_HELM", - define_as = "RUNED_SKULL", - name = "Dragonskull Helm", unique=true, unided_name="skull helm", - desc = [[Traces of a dragon's power still remain in this bleached and cracked skull.]], - require = { stat = { mag=24 }, }, - cost = 200, - - wielder = { - resists = { - [DamageType.FIRE] = 15, - [DamageType.COLD] = 15, - [DamageType.LIGHTNING] = 15, - }, - esp = {dragon=1}, - combat_armor = 2, - fatigue = 12, - combat_physresist = 12, - combat_mentalresist = 12, - combat_spellresist = 12, - }, -} diff --git a/game/modules/tome/data/zones/flooded-cave/npcs.lua b/game/modules/tome/data/zones/flooded-cave/npcs.lua index 3d6538f4ff430e6422ff1381e6be3c9705b6b8ee..dff19dfc85e5085164737d8993692e194a0f1dde 100644 --- a/game/modules/tome/data/zones/flooded-cave/npcs.lua +++ b/game/modules/tome/data/zones/flooded-cave/npcs.lua @@ -50,7 +50,7 @@ newEntity{ define_as = "UKLLMSWWIK", resists = { [DamageType.COLD] = 60, [DamageType.LIGHTNING] = 20, }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - resolvers.drops{chance=100, nb=1, {defined="TRIDENT_TIDES", random_art_replace={chance=50, rarity=250, level_range={30, 40}}, autoreq=true} }, + resolvers.drops{chance=100, nb=1, {defined="TRIDENT_TIDES", random_art_replace={chance=50}, autoreq=true} }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, resolvers.drops{chance=100, nb=10, {type="money"} }, diff --git a/game/modules/tome/data/zones/flooded-cave/objects.lua b/game/modules/tome/data/zones/flooded-cave/objects.lua index ac8051ff2731ea0abe223d32bfc460f1d78709a0..844b155d2492a61de302c2fcccda8f04dce50590 100644 --- a/game/modules/tome/data/zones/flooded-cave/objects.lua +++ b/game/modules/tome/data/zones/flooded-cave/objects.lua @@ -23,37 +23,3 @@ local DamageType = require "engine.DamageType" load("/data/general/objects/2htridents.lua", function(e) e.rarity = e.trident_rarity end) load("/data/general/objects/objects.lua") - --- Artifact, droped (and used!) by Bill the Stone Troll - -newEntity{ base = "BASE_TRIDENT", - define_as = "TRIDENT_TIDES", - name = "Trident of the Tides", unique=true, - desc = [[As you wield this trident you can feel the power of the tides rushing through your arms. -Tridents require the exotic weapons mastery talent to correctly use.]], - require = { stat = { str=35 }, }, - cost = 300, - material_level = 4, - combat = { - dam = 50, - atk = 10, - apr = 4, - physcrit = 15, - dammod = {str=1.3}, - damrange = 1.4, - }, - - wielder = { - combat_spellresist = 18, - see_invisible = 2, - resists={[DamageType.COLD] = 25}, - inc_damage = { [DamageType.COLD] = 20 }, - melee_project={ - [DamageType.COLD] = 15, - [DamageType.NATURE] = 20, - }, - }, - - max_power = 150, power_regen = 1, - use_talent = { id = Talents.T_WATER_BOLT, level=3, power = 60 }, -} diff --git a/game/modules/tome/data/zones/gorbat-pride/npcs.lua b/game/modules/tome/data/zones/gorbat-pride/npcs.lua index fcfb5484c85db338ec4b8345a2a698c48c9f6360..85cb02b3f902ff2daeaa5f7ba036d1d1a551bbf0 100644 --- a/game/modules/tome/data/zones/gorbat-pride/npcs.lua +++ b/game/modules/tome/data/zones/gorbat-pride/npcs.lua @@ -49,7 +49,7 @@ newEntity{ base="BASE_NPC_ORC_GORBAT", define_as = "GORBAT", resolvers.equip{ {type="weapon", subtype="greatmaul", ego_change=100, autoreq=true}, - {type="armor", subtype="light", defined="CHROMATIC_HARNESS", random_art_replace={chance=75, rarity=250, level_range={40, 50}}, autoreq=true}, + {type="armor", subtype="light", defined="CHROMATIC_HARNESS", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=1, {defined="ORB_DRAGON"} }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/gorbat-pride/objects.lua b/game/modules/tome/data/zones/gorbat-pride/objects.lua index 1b705e2c929b19b6e8f5f129270b9a3c14cecde7..c8bcaaefa0100ea419e139e4051ccdeefb9aec98 100644 --- a/game/modules/tome/data/zones/gorbat-pride/objects.lua +++ b/game/modules/tome/data/zones/gorbat-pride/objects.lua @@ -19,23 +19,3 @@ load("/data/general/objects/objects-far-east.lua") load("/data/general/objects/lore/sunwall.lua") - -local Talents = require("engine.interface.ActorTalents") -local Stats = require"engine.interface.ActorStats" - -newEntity{ base = "BASE_LIGHT_ARMOR", - define_as = "CHROMATIC_HARNESS", rarity=false, - name = "Chromatic Harness", unique=true, - unided_name = "multi-hued leather armour", color=colors.VIOLET, - desc = [[This leather harness shines of multiple colors, quickly shifting through them in a seemingly chaotic manner.]], - cost = 500, - material_level = 5, - wielder = { - talent_cd_reduction={[Talents.T_ICE_BREATH]=3, [Talents.T_FIRE_BREATH]=3, [Talents.T_SAND_BREATH]=3, }, - inc_stats = { [Stats.STAT_WIL] = 6, [Stats.STAT_CUN] = 4, [Stats.STAT_DEX] = 3, [Stats.STAT_LCK] = 10, }, - poison_immune = 0.7, - combat_armor = 10, - esp = { dragon = 1 }, - fatigue = 10, - }, -} diff --git a/game/modules/tome/data/zones/grushnak-pride/npcs.lua b/game/modules/tome/data/zones/grushnak-pride/npcs.lua index 5fa18ef828b7812dcb208bcd3582b76ef3d23c6d..abd1b04c2c6451c4ad2e501dfbe96107141cf67a 100644 --- a/game/modules/tome/data/zones/grushnak-pride/npcs.lua +++ b/game/modules/tome/data/zones/grushnak-pride/npcs.lua @@ -55,7 +55,7 @@ newEntity{ base="BASE_NPC_ORC_GRUSHNAK", define_as = "GRUSHNAK", -- Commented because this can generate rings of invis or amulets of telepathy and drain the life of the boss -- {type="jewelry", subtype="amulet", ego_chance=100, autoreq=true}, -- {type="jewelry", subtype="ring", ego_chance=100, autoreq=true}, - {type="jewelry", subtype="ring", defined="PRIDE_GLORY", random_art_replace={chance=75, rarity=250, level_range={40, 50}}, autoreq=true}, + {type="jewelry", subtype="ring", defined="PRIDE_GLORY", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=1, {defined="ORB_DESTRUCTION"} }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/grushnak-pride/objects.lua b/game/modules/tome/data/zones/grushnak-pride/objects.lua index 021a68237530d4a00b35c2c56bbf1abdbc527c71..c8bcaaefa0100ea419e139e4051ccdeefb9aec98 100644 --- a/game/modules/tome/data/zones/grushnak-pride/objects.lua +++ b/game/modules/tome/data/zones/grushnak-pride/objects.lua @@ -19,30 +19,3 @@ load("/data/general/objects/objects-far-east.lua") load("/data/general/objects/lore/sunwall.lua") - -local Talents = require"engine.interface.ActorTalents" -local Stats = require"engine.interface.ActorStats" - -newEntity{ base = "BASE_RING", - define_as = "PRIDE_GLORY", rarity=false, - name = "Glory of the Pride", unique=true, - desc = [[The most prized treasure of the Battlemaster of the Pride, Grushnak. This gold ring is incribed in the orc tongue, the black speech.]], - unided_name = "deep black ring", - cost = 500, - material_level = 5, - wielder = { - max_mana = -40, - max_stamina = 40, - stun_immune = 1, - confusion_immune = 1, - combat_atk = 10, - combat_dam = 10, - combat_def = 5, - combat_armor = 10, - fatigue = -15, - talent_cd_reduction={ - [Talents.T_RUSH]=15, - }, - inc_damage={ [DamageType.PHYSICAL] = 8, }, - }, -} diff --git a/game/modules/tome/data/zones/high-peak/objects.lua b/game/modules/tome/data/zones/high-peak/objects.lua index f1d423a8ca07931302d4de0fa2beba6b9d11edee..18fe3bba186e684471408c1dfe869adc8c6a4754 100644 --- a/game/modules/tome/data/zones/high-peak/objects.lua +++ b/game/modules/tome/data/zones/high-peak/objects.lua @@ -85,4 +85,4 @@ newEntity{ define_as = "PEARL_LIFE_DEATH", resists = {all = 7}, stun_immune = 1, }, -} \ No newline at end of file +} diff --git a/game/modules/tome/data/zones/maze/npcs.lua b/game/modules/tome/data/zones/maze/npcs.lua index e69167929fc9fd42607ace36ba8d08dc6b2de7d6..c87425d0241fc303078fa3682c08be1226874faf 100644 --- a/game/modules/tome/data/zones/maze/npcs.lua +++ b/game/modules/tome/data/zones/maze/npcs.lua @@ -50,7 +50,7 @@ newEntity{ define_as = "MINOTAUR_MAZE", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, HEAD=1, }, resolvers.equip{ {type="weapon", subtype="battleaxe", autoreq=true}, - {type="armor", subtype="head", defined="HELM_OF_HAMMERHAND", random_art_replace={chance=75, rarity=200, level_range={12, 22}}, autoreq=true}, + {type="armor", subtype="head", defined="HELM_OF_HAMMERHAND", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, @@ -87,7 +87,7 @@ newEntity{ base = "BASE_NPC_SPIDER", define_as = "NIMISIL", instakill_immune = 1, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, - resolvers.drops{chance=100, nb=1, {defined="LUNAR_SHIELD", random_art_replace={chance=75, rarity=220, level_range={40, 50}}} }, + resolvers.drops{chance=100, nb=1, {defined="LUNAR_SHIELD", random_art_replace={chance=75}} }, combat_armor = 25, combat_def = 33, diff --git a/game/modules/tome/data/zones/maze/objects.lua b/game/modules/tome/data/zones/maze/objects.lua index fd04a496a16c390975f2eae32cfdbae819614679..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/maze/objects.lua +++ b/game/modules/tome/data/zones/maze/objects.lua @@ -18,54 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -local Stats = require"engine.interface.ActorStats" - --- Artifact, droped (and used!) by the Minautaur -newEntity{ base = "BASE_HELM", - define_as = "HELM_OF_HAMMERHAND", - name = "Steel Helm of Hammerhand", unique=true, - desc = [[A great helm as steady as the heroes of the Westdike. Mighty were the blows of Helm, the Hammerhand!]], - require = { stat = { str=16 }, }, - cost = 20, - - wielder = { - combat_armor = 4, - fatigue = 8, - inc_stats = { [Stats.STAT_STR] = 3, [Stats.STAT_CON] = 3, [Stats.STAT_WIL] = 4 }, - combat_physresist = 7, - combat_mentalresist = 7, - combat_spellresist = 7, - }, -} - -newEntity{ base = "BASE_SHIELD", - define_as = "LUNAR_SHIELD", - unique = true, - name = "Lunar Shield", - unided_name = "chitinous shield", - desc = [[A large section of chitin removed from Nimisil. It continues to give off a strange white glow.]], - color = colors.YELLOW, - metallic = false, - require = { stat = { str=35 }, }, - cost = 350, - material_level = 5, - special_combat = { - dam = 45, - physcrit = 10, - dammod = {str=1}, - damtype = DamageType.ARCANE, - }, - wielder = { - resists={[DamageType.DARKNESS] = 25}, - inc_damage={[DamageType.DARKNESS] = 15}, - - combat_armor = 7, - combat_def = 12, - combat_def_ranged = 5, - fatigue = 12, - - lite = 1, - talents_types_mastery = {["divine/star-fury"]=0.2,["divine/twilight"]=0.1,}, - }, -} diff --git a/game/modules/tome/data/zones/old-forest/npcs.lua b/game/modules/tome/data/zones/old-forest/npcs.lua index 6f28db77d8330c9caf04100efd91557fa35918ca..f598f41df4a1006ad952c07d32c130cd70b7ef46 100644 --- a/game/modules/tome/data/zones/old-forest/npcs.lua +++ b/game/modules/tome/data/zones/old-forest/npcs.lua @@ -55,7 +55,7 @@ newEntity{ define_as = "OLD_MAN_WILLOW", resists = { [DamageType.FIRE] = -50 }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - equipment = resolvers.equip{ {type="armor", subtype="shield", defined="OLD_MAN_WILLOW_SHIELD", random_art_replace={chance=75, rarity=200, level_range={10, 20}}, autoreq=true}, }, + equipment = resolvers.equip{ {type="armor", subtype="shield", defined="OLD_MAN_WILLOW_SHIELD", random_art_replace={chance=75}, autoreq=true}, }, drops = resolvers.drops{chance=100, nb=5, {ego_chance=100} }, resolvers.talents{ @@ -110,7 +110,8 @@ newEntity{ define_as = "SNAPROOT", -- backup guardian resists = { [DamageType.FIRE] = -20, [DamageType.PHYSICAL] = 50, [DamageType.COLD] = 50, [DamageType.NATURE] = 25 }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - drops = resolvers.drops{chance=100, nb=5, {ego_chance=100} }, + resolvers.drops{chance=100, nb=1, {defined="PETRIFIED_WOOD", random_art_replace={chance=75}}}, + resolvers.drops{chance=100, nb=5, {ego_chance=100} }, resolvers.talents{ [Talents.T_STUN]=5, [Talents.T_GRAB]=5, diff --git a/game/modules/tome/data/zones/old-forest/objects.lua b/game/modules/tome/data/zones/old-forest/objects.lua index b88418361e9ea9e6da0fce6a2380ab15370124b9..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/old-forest/objects.lua +++ b/game/modules/tome/data/zones/old-forest/objects.lua @@ -18,49 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -local Stats = require "engine.interface.ActorStats" - --- Artifact, droped (and used!) by Bill the Stone Troll - -newEntity{ base = "BASE_SHIELD", - define_as = "OLD_MAN_WILLOW_SHIELD", - name = "Old Man Willow's Barkwood", unique=true, - desc = [[The barkwood of the Old Man's Willow, made into roughly the shape of a shield.]], - require = { stat = { str=25 }, }, - cost = 20, - rarity = false, - metallic = false, - - special_combat = { - dam = resolvers.rngavg(20,30), - physcrit = 2, - dammod = {str=1.5}, - }, - wielder = { - combat_armor = 5, - combat_def = 9, - fatigue = 14, - resists = { - [DamageType.FIRE] = -20, - [DamageType.COLD] = 20, - [DamageType.NATURE] = 20, - }, - }, -} - -newEntity{ base = "BASE_GEM", - unique = true, - unided_name = "burned piece of wood", - name = "Petrified Wood", subtype = "black", - color = colors.WHITE, image="object/bloodstone.png", - level_range = {35, 45}, - desc = [[A piece of the scorched wood took from the remains of Snaproot.]], - rarity = false, - cost = 100, - material_level = 5, - imbue_powers = { - resists = { [DamageType.NATURE] = 25, [DamageType.FIRE] = -10, [DamageType.COLD] = 10 }, - inc_stats = { [Stats.STAT_CON] = 10, }, - }, -} diff --git a/game/modules/tome/data/zones/rak-shor-pride/npcs.lua b/game/modules/tome/data/zones/rak-shor-pride/npcs.lua index c164698cf6e08ee92ba8220b400b986eaa4186c7..459408e749d8e2ddb9438a7534ed77888c1eee57 100644 --- a/game/modules/tome/data/zones/rak-shor-pride/npcs.lua +++ b/game/modules/tome/data/zones/rak-shor-pride/npcs.lua @@ -52,7 +52,7 @@ newEntity{ base="BASE_NPC_ORC_RAK_SHOR", define_as = "RAK_SHOR", resolvers.equip{ {type="weapon", subtype="staff", ego_change=100, autoreq=true}, - {type="armor", subtype="cloth", defined="BLACK_ROBE", random_art_replace={chance=75, rarity=250, level_range={40, 50}}, autoreq=true}, + {type="armor", subtype="cloth", defined="BLACK_ROBE", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=20, nb=1, {defined="JEWELER_TOME"} }, resolvers.drops{chance=100, nb=1, {defined="ORB_UNDEATH"} }, diff --git a/game/modules/tome/data/zones/rak-shor-pride/objects.lua b/game/modules/tome/data/zones/rak-shor-pride/objects.lua index cc9153fd36f139a06c14c918c43dd916badcea37..c8bcaaefa0100ea419e139e4051ccdeefb9aec98 100644 --- a/game/modules/tome/data/zones/rak-shor-pride/objects.lua +++ b/game/modules/tome/data/zones/rak-shor-pride/objects.lua @@ -19,21 +19,3 @@ load("/data/general/objects/objects-far-east.lua") load("/data/general/objects/lore/sunwall.lua") - -local Stats = require"engine.interface.ActorStats" - -newEntity{ base = "BASE_CLOTH_ARMOR", - define_as = "BLACK_ROBE", rarity=false, - name = "Black Robe", unique=true, - unided_name = "black robe", color=colors.DARK_GREY, - desc = [[A silk robe, darker than the darkest night sky, it radiates power.]], - cost = 500, - wielder = { - inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 }, - see_invisible = 10, - blind_immune = 1, - combat_spellpower = 10, - combat_dam = 10, - combat_def = 6, - }, -} diff --git a/game/modules/tome/data/zones/reknor/npcs.lua b/game/modules/tome/data/zones/reknor/npcs.lua index cdcab34dd602349180c16fd0f8a64fe36941cc4c..4989c8e7ecba5247cac2adeba431e02433893cf7 100644 --- a/game/modules/tome/data/zones/reknor/npcs.lua +++ b/game/modules/tome/data/zones/reknor/npcs.lua @@ -167,7 +167,7 @@ newEntity{ define_as = "LITHFENGEL", -- Lord of Ash; backup guardian body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, resolvers.equip{ - {type="weapon", subtype="waraxe", defined="MALEDICTION", random_art_replace={chance=75, rarity=200, level_range={35, 45}}, autoreq=true}, + {type="weapon", subtype="waraxe", defined="MALEDICTION", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=4, {ego_chance=100} }, resolvers.drops{chance=100, nb=1, {defined="ATHAME_WEST"} }, diff --git a/game/modules/tome/data/zones/reknor/objects.lua b/game/modules/tome/data/zones/reknor/objects.lua index 6ced2f0277634a197cce3294eaeca92802958ebf..df77035cab0340de7a8bd22caa4895cb87d3c179 100644 --- a/game/modules/tome/data/zones/reknor/objects.lua +++ b/game/modules/tome/data/zones/reknor/objects.lua @@ -28,27 +28,6 @@ newEntity{ base = "BASE_SCROLL", define_as = "NOTE_FROM_LAST_HOPE", end} } -newEntity{ base = "BASE_WARAXE", - define_as = "MALEDICTION", rarity=false, - unided_name = "pestilent waraxe", - name = "Malediction", unique=true, - desc = [[The land withers and crumbles wherever this cursed axe rests.]], - require = { stat = { str=55 }, }, - cost = 375, - combat = { - dam = 55, - apr = 15, - physcrit = 10, - dammod = {str=1}, - damrange = 1.2, - }, - wielder = { - life_regen = -0.3, - inc_damage = { [DamageType.BLIGHT] = 20 }, - melee_project={[DamageType.BLIGHT] = 20}, - }, -} - newEntity{ base = "BASE_GEM", define_as = "RESONATING_DIAMOND_WEST", name = "Resonating Diamond", color=colors.VIOLET, quest=true, unique="Resonating Diamond West", identified=true, no_unique_lore=true, diff --git a/game/modules/tome/data/zones/ruins-kor-pul/npcs.lua b/game/modules/tome/data/zones/ruins-kor-pul/npcs.lua index 6b7a9057603c50d46d2457308fd37f5f66f36ab2..2165dcdb800b66b7fe5dc217834c23bcb4781760 100644 --- a/game/modules/tome/data/zones/ruins-kor-pul/npcs.lua +++ b/game/modules/tome/data/zones/ruins-kor-pul/npcs.lua @@ -48,7 +48,7 @@ newEntity{ define_as = "SHADE", move_others=true, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - equipment = resolvers.equip{ {type="weapon", subtype="staff", defined="STAFF_KOR", random_art_replace={chance=75, rarity=150, level_range={1, 10}}, autoreq=true}, {type="armor", subtype="light", autoreq=true}, }, + equipment = resolvers.equip{ {type="weapon", subtype="staff", defined="STAFF_KOR", random_art_replace={chance=75}, autoreq=true}, {type="armor", subtype="light", autoreq=true}, }, drops = resolvers.drops{chance=100, nb=3, {ego_chance=100} }, resolvers.talents{ @@ -98,7 +98,7 @@ newEntity{ define_as = "KOR_FURY", resolvers.equip{ {type="weapon", subtype="staff", ego_chance=100, autoreq=true}, {type="armor", subtype="light", autoreq=true}, - {type="jewelry", subtype="amulet", defined="VOX", random_art_replace={chance=75, rarity=220, level_range={40, 50}}, autoreq=true}, + {type="jewelry", subtype="amulet", defined="VOX", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/ruins-kor-pul/objects.lua b/game/modules/tome/data/zones/ruins-kor-pul/objects.lua index 011289877f3618baa993fc3af35f44607c3cfb7f..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/ruins-kor-pul/objects.lua +++ b/game/modules/tome/data/zones/ruins-kor-pul/objects.lua @@ -18,47 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - --- Artifact, droped (and used!) by the Shade -newEntity{ base = "BASE_STAFF", - define_as = "STAFF_KOR", rarity=false, - name = "Kor's Fall", unique=true, - desc = [[Made from the bones of of many creatures this staff glows with power. You can feel its evilness as you touch it.]], - require = { stat = { mag=25 }, }, - cost = 5, - combat = { - dam = 10, - apr = 0, - physcrit = 1.5, - dammod = {mag=1.1}, - }, - wielder = { - see_invisible = 2, - combat_spellpower = 7, - combat_spellcrit = 8, - inc_damage={ - [DamageType.FIRE] = 4, - [DamageType.COLD] = 4, - [DamageType.ACID] = 4, - [DamageType.LIGHTNING] = 4, - [DamageType.BLIGHT] = 4, - }, - }, -} - -newEntity{ base = "BASE_AMULET", - define_as = "VOX", rarity=false, - name = "Vox", unique=true, - unided_name = "ringing amulet", color=colors.BLUE, - desc = [[No force can hope to silence the wearer of this amulet.]], - cost = 3000, - wielder = { - see_invisible = 20, - silence_immune = 0.8, - combat_spellpower = 9, - combat_spellcrit = 4, - mana = 50, - vim = 50, - }, - -} diff --git a/game/modules/tome/data/zones/telmur/npcs.lua b/game/modules/tome/data/zones/telmur/npcs.lua index 24a2bff5e545ac98568dabb748a92fe38c3d91ad..8795b21df98adf2ba408fd3b1a37414d6addbf78 100644 --- a/game/modules/tome/data/zones/telmur/npcs.lua +++ b/game/modules/tome/data/zones/telmur/npcs.lua @@ -58,7 +58,7 @@ newEntity{ define_as = "SHADE_OF_TELOS", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, }, resolvers.equip{ - {type="weapon", subtype="staff", defined="TELOS_TOP_HALF", random_art_replace={chance=75, rarity=190, level_range={40, 50}}, autoreq=true}, + {type="weapon", subtype="staff", defined="TELOS_TOP_HALF", random_art_replace={chance=75}, autoreq=true}, {type="weapon", subtype="staff", defined="TELOS_BOTTOM_HALF", autoreq=true}, }, resolvers.drops{chance=100, nb=2, {type="wand"} }, diff --git a/game/modules/tome/data/zones/telmur/objects.lua b/game/modules/tome/data/zones/telmur/objects.lua index b6812b426de6eb2aaed6566d02e2a36df501e107..cd94e44171e2879228aae24e1b78f6214735f9b8 100644 --- a/game/modules/tome/data/zones/telmur/objects.lua +++ b/game/modules/tome/data/zones/telmur/objects.lua @@ -21,29 +21,6 @@ load("/data/general/objects/objects.lua") local Stats = require "engine.interface.ActorStats" -newEntity{ base = "BASE_STAFF", - define_as = "TELOS_TOP_HALF", rarity=false, - slot_forbid = false, - twohanded = false, - name = "Telos's Staff (Top Half)", unique=true, - desc = [[The top part of Telos's broken staff.]], - require = { stat = { mag=35 }, }, - encumberance = 2.5, - cost = 500, - combat = { - dam = 35, - apr = 0, - physcrit = 1.5, - dammod = {mag=1.0}, - }, - wielder = { - combat_spellpower = 25, - combat_spellcrit = 5, - combat_mentalresist = 8, - inc_stats = { [Stats.STAT_WIL] = 5, }, - }, -} - newEntity{ base = "BASE_STAFF", slot = "OFFHAND", slot_forbid = false, twohanded = false, add_name=false, diff --git a/game/modules/tome/data/zones/tol-falas/npcs.lua b/game/modules/tome/data/zones/tol-falas/npcs.lua index 52d8cd8e5a999d2d4089c46af067d320bc845433..e5d7c5dee7b8ec9ddc9abfa6d860f02c72c2969a 100644 --- a/game/modules/tome/data/zones/tol-falas/npcs.lua +++ b/game/modules/tome/data/zones/tol-falas/npcs.lua @@ -51,7 +51,7 @@ newEntity{ define_as = "THE_MASTER", equipment = resolvers.equip{ {type="weapon", subtype="greatsword", ego_chance=100, autoreq=true}, {type="armor", subtype="heavy", ego_chance=50, autoreq=true}, - {type="jewelry", subtype="amulet", defined="AMULET_DREAD", random_art_replace={chance=75, rarity=210, level_range={25, 35}}, autoreq=true}, + {type="jewelry", subtype="amulet", defined="AMULET_DREAD", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, resolvers.drops{chance=100, nb=1, {type="weapon", subtype="staff", defined="STAFF_ABSORPTION"} }, @@ -127,7 +127,7 @@ newEntity{ define_as = "PALE_DRAKE", {type="armor", subtype="cloth", ego_chance=50, autoreq=true}, }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, - resolvers.drops{chance=100, nb=1, {defined="RUNED_SKULL", random_art_replace={chance=75, rarity=250, level_range={40, 50}}} }, + resolvers.drops{chance=100, nb=1, {defined="RUNED_SKULL", random_art_replace={chance=75}} }, summon = { {type="undead", subtype="bone giant", special_rarity="bonegiant_rarity", number=2, hasxp=true}, diff --git a/game/modules/tome/data/zones/tol-falas/objects.lua b/game/modules/tome/data/zones/tol-falas/objects.lua index 69a55fc7532f48cab69f6314fa3d10a2028e95c5..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/tol-falas/objects.lua +++ b/game/modules/tome/data/zones/tol-falas/objects.lua @@ -18,90 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -newEntity{ base = "BASE_AMULET", - define_as = "AMULET_DREAD", rarity=false, - name = "Choker of Dread", unique=true, - unided_name = "dark amulet", color=colors.LIGHT_DARK, - desc = [[The evilness of undeath radiates from this amulet.]], - cost = 5000, - wielder = { - see_invisible = 10, - blind_immune = 1, - combat_spellpower = 5, - combat_dam = 5, - }, - max_power = 60, power_regen = 1, - use_power = { name = "summon an elder vampire to your side", power = 60, use = function(self, who) - if not who:canBe("summon") then game.logPlayer(who, "You can not summon, you are suppressed!") return end - - -- Find space - local x, y = util.findFreeGrid(who.x, who.y, 5, true, {[engine.Map.ACTOR]=true}) - if not x then - game.logPlayer(who, "Not enough space to invoke the vampire!") - return - end - print("Invoking guardian on", x, y) - - local NPC = require "mod.class.NPC" - local vampire = NPC.new{ - type = "undead", subtype = "vampire", - display = "V", - name = "elder vampire", color=colors.RED, - desc=[[A terrible robed undead figure, this creature has existed in its unlife for many centuries by stealing the life of others. It can - summon the very shades of its victims from beyond the grave to come enslaved to its aid.]], - - combat = { dam=resolvers.rngavg(9,13), atk=10, apr=9, damtype=engine.DamageType.DRAINLIFE, dammod={str=1.9} }, - - body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - - autolevel = "warriormage", - ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, }, - energy = { mod=1 }, - stats = { str=12, dex=12, mag=12, con=12 }, - life_regen = 3, - size_category = 3, - rank = 3, - infravision = 20, - - inc_damage = table.clone(who.inc_damage, true), - - resolvers.tmasteries{ ["technique/other"]=0.5, ["spell/phantasm"]=0.8, }, - - resists = { [engine.DamageType.COLD] = 80, [engine.DamageType.NATURE] = 80, [engine.DamageType.LIGHT] = -50, }, - blind_immune = 1, - confusion_immune = 1, - see_invisible = 5, - undead = 1, - - level_range = {who.level, who.level}, exp_worth = 0, - max_life = resolvers.rngavg(90,100), - combat_armor = 12, combat_def = 10, - resolvers.talents{ [who.T_STUN]=2, [who.T_BLUR_SIGHT]=3, [who.T_PHANTASMAL_SHIELD]=2, [who.T_ROTTING_DISEASE]=3, }, - - faction = who.faction, - summoner = who, - summon_time = 10, - } - - vampire:resolve() - game.zone:addEntity(game.level, vampire, "actor", x, y) - - game:playSoundNear(who, "talents/spell_generic") - end }, -} - -newEntity{ define_as = "RUNED_SKULL", - unique = true, - type = "gem", subtype="red", - unided_name = "human skull", - name = "Runed Skull", - display = "*", color=colors.RED, - encumber = 3, - desc = [[Dull red runes are etched all over this blackened skull.]], - - carrier = { - combat_spellpower = 7, - on_melee_hit = {[DamageType.FIREKNOCKBACK]=25}, - }, -} diff --git a/game/modules/tome/data/zones/town-sunwall-outpost/objects.lua b/game/modules/tome/data/zones/town-sunwall-outpost/objects.lua index cdffd619b53ae1e17c329b3e47582c59f1ee1216..65f98bf33c61178bc90f13bd340df44d5a495abe 100644 --- a/game/modules/tome/data/zones/town-sunwall-outpost/objects.lua +++ b/game/modules/tome/data/zones/town-sunwall-outpost/objects.lua @@ -18,70 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects-far-east.lua") - -newEntity{ base = "BASE_RING", - define_as = "RING_LOST_LOVE", rarity=false, - name = "Ring of Lost Love", unique=true, - unided_name = "wedding ring", color=colors.LIGHT_BLUE, - desc = [[Letters are engraved in it: "Crichton my love".]], - cost = 500, - wielder = { - see_invisible = 10, - blind_immune = 1, - combat_spellpower = 5, - combat_dam = 5, - }, - max_power = 60, power_regen = 1, - use_power = { name = "summon an elder vampire to your side", power = 60, use = function(self, who) - -- Find space - local x, y = util.findFreeGrid(who.x, who.y, 5, true, {[engine.Map.ACTOR]=true}) - if not x then - game.logPlayer(who, "Not enough space to invoke the vampire!") - return - end - print("Invoking guardian on", x, y) - - local NPC = require "mod.class.NPC" - local vampire = NPC.new{ - type = "undead", subtype = "vampires", - display = "V", - name = "elder vampire", color=colors.RED, - desc=[[A terrible robed undead figure, this creature has existed in its unlife for many centuries by stealing the life of others. It can - summon the very shades of its victims from beyond the grave to come enslaved to its aid.]], - - combat = { dam=resolvers.rngavg(9,13), atk=10, apr=9, damtype=DamageType.DRAINLIFE, dammod={str=1.9} }, - - body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - - autolevel = "warriormage", - ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, }, - energy = { mod=1 }, - stats = { str=12, dex=12, mag=12, con=12 }, - life_regen = 3, - size_category = 3, - rank = 3, - - resolvers.tmasteries{ ["technique/other"]=0.5, ["spell/phantasm"]=0.8, }, - - resists = { [DamageType.COLD] = 80, [DamageType.NATURE] = 80, [DamageType.LIGHT] = -50, }, - blind_immune = 1, - confusion_immune = 1, - see_invisible = 5, - undead = 1, - - level_range = {who.level, who.level}, exp_worth = 0, - max_life = resolvers.rngavg(90,100), - combat_armor = 12, combat_def = 10, - resolvers.talents{ [who.T_STUN]=2, [who.T_BLUR_SIGHT]=3, [who.T_PHANTASMAL_SHIELD]=2, [who.T_ROTTING_DISEASE]=3, }, - - faction = who.faction, - summoner = who, - summon_time = 10, - } - - vampire:resolve() - game.zone:addEntity(game.level, vampire, "actor", x, y) - - game:playSoundNear(who, "talents/spell_generic") - end }, -} diff --git a/game/modules/tome/data/zones/trollshaws/npcs.lua b/game/modules/tome/data/zones/trollshaws/npcs.lua index 4bcb402075f09bd84914879ed42f3b7fe41f1ea9..4ce132ea5ccd9922b2cdbebb9a926e58779ef1fd 100644 --- a/game/modules/tome/data/zones/trollshaws/npcs.lua +++ b/game/modules/tome/data/zones/trollshaws/npcs.lua @@ -49,7 +49,7 @@ newEntity{ define_as = "TROLL_BILL", move_others=true, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - resolvers.equip{ {type="weapon", subtype="greatmaul", defined="GREATMAUL_BILL_TRUNK", random_art_replace={chance=75, rarity=150, level_range={1, 10}}, autoreq=true}, }, + resolvers.equip{ {type="weapon", subtype="greatmaul", defined="GREATMAUL_BILL_TRUNK", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, resolvers.talents{ @@ -87,7 +87,7 @@ newEntity{ define_as = "ALUIN", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, resolvers.equip{ {type="weapon", subtype="waraxe", ego_chance=100, autoreq=true}, - {type="armor", subtype="shield", defined="SANGUINE_SHIELD", random_art_replace={chance=65, rarity=220, level_range={35, 45}}, autoreq=true}, + {type="armor", subtype="shield", defined="SANGUINE_SHIELD", random_art_replace={chance=65}, autoreq=true}, {type="armor", subtype="massive", ego_chance=100, autoreq=true}, }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/trollshaws/objects.lua b/game/modules/tome/data/zones/trollshaws/objects.lua index 8a7fd4922f5ea6e1427a84b04ef8f01cc4720b82..f3741edc0923cf46e6ab7f5cd9b892b87ef86ff9 100644 --- a/game/modules/tome/data/zones/trollshaws/objects.lua +++ b/game/modules/tome/data/zones/trollshaws/objects.lua @@ -19,30 +19,6 @@ load("/data/general/objects/objects.lua") -local Stats = require "engine.interface.ActorStats" - --- Artifact, droped (and used!) by Bill the Stone Troll - -newEntity{ base = "BASE_GREATMAUL", - define_as = "GREATMAUL_BILL_TRUNK", - name = "Bill's Tree Trunk", unique=true, - desc = [[This is a big nasty looking tree trunk that Bill was using as a weapon. It could still serve this purpose, should you be strong enough to wield it!]], - require = { stat = { str=25 }, }, - rarity = false, - metallic = false, - cost = 5, - combat = { - dam = 30, - apr = 7, - physcrit = 1.5, - dammod = {str=1.3}, - damrange = 1.7, - }, - - wielder = { - }, -} - for i = 1, 5 do newEntity{ base = "BASE_SCROLL", define_as = "NOTE"..i, @@ -53,27 +29,3 @@ newEntity{ base = "BASE_SCROLL", encumberance = 0, } end - -newEntity{ base = "BASE_SHIELD", - define_as = "SANGUINE_SHIELD", - unided_name = "bloody shield", - name = "Sanguine Shield", unique=true, - desc = [[Though tarnished and spattered with blood, the emblem of the sun still manages to shine through on this shield.]], - require = { stat = { str=39 }, }, - cost = 120, - - special_combat = { - dam = 40, - physcrit = 9, - dammod = {str=1.2}, - }, - wielder = { - combat_armor = 4, - combat_def = 14, - combat_def_ranged = 14, - inc_stats = { [Stats.STAT_CON] = 5, }, - fatigue = 19, - resists = { [DamageType.BLIGHT] = 25, }, - life_regen = 5, - }, -} diff --git a/game/modules/tome/data/zones/valley-moon/npcs.lua b/game/modules/tome/data/zones/valley-moon/npcs.lua index 853c5b4ef76434a5c96a28a00745e87bb4f558c4..e7c19673bcbf6d8bccaa98f9ffeee1d4f70444db 100644 --- a/game/modules/tome/data/zones/valley-moon/npcs.lua +++ b/game/modules/tome/data/zones/valley-moon/npcs.lua @@ -45,7 +45,7 @@ newEntity{ define_as = "CORRUPTED_BALROG", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, resolvers.equip{ - {type="weapon", subtype="whip", defined="WHIP_GOTHMOG", random_art_replace={chance=75, rarity=290, level_range={40, 50}}, autoreq=true}, + {type="weapon", subtype="whip", defined="WHIP_GOTHMOG", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/valley-moon/objects.lua b/game/modules/tome/data/zones/valley-moon/objects.lua index 930ed6fdc03eb5ce91fbcdc3b5055a6a935c1ec4..65f98bf33c61178bc90f13bd340df44d5a495abe 100644 --- a/game/modules/tome/data/zones/valley-moon/objects.lua +++ b/game/modules/tome/data/zones/valley-moon/objects.lua @@ -18,30 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects-far-east.lua") - -newEntity{ base = "BASE_WHIP", - define_as = "WHIP_GOTHMOG", - unided_name = "fiery whip", - name = "Whip of Gothmog, High Captain of the Balrogs", color=colors.PURPLE, unique = true, - desc = [[With this unbearably bright whip of flame, the Balrog Gothmog has become known for never having lost in combat. -But nothing lasts forever and he was finally defeated by Echtelion in the First Age. His whip must have been taken by the other balrogs from his corpse.]], - require = { stat = { dex=48 }, }, - cost = 250, - material_level = 5, - combat = { - dam = resolvers.rngavg(40,45), - apr = 0, - physcrit = 9, - dammod = {dex=1}, - damtype = DamageType.FIREKNOCKBACK, - }, - wielder = { - esp = {["demon/minor"]=1, ["demon/major"]=1}, - see_invisible = 2, - }, - carrier = { - inc_damage={ - [DamageType.BLIGHT] = 8, - }, - }, -} diff --git a/game/modules/tome/data/zones/vor-armoury/npcs.lua b/game/modules/tome/data/zones/vor-armoury/npcs.lua index 808e49afc8ff497ddeee7b8582a117ea8d0b9998..2c35f652895d6e4e39d4f52c3a0352dd548b41bf 100644 --- a/game/modules/tome/data/zones/vor-armoury/npcs.lua +++ b/game/modules/tome/data/zones/vor-armoury/npcs.lua @@ -52,7 +52,7 @@ newEntity{ base="BASE_NPC_ORC_GRUSHNAK", define_as = "GNARG", body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, HEAD=1 }, resolvers.equip{ - {type="weapon", subtype="greatsword", defined="MURDERBLADE", random_art_replace={chance=75, rarity=250, level_range={35, 45}}, autoreq=true}, + {type="weapon", subtype="greatsword", defined="MURDERBLADE", random_art_replace={chance=75}, autoreq=true}, {type="armor", subtype="massive", ego_change=100, autoreq=true}, }, resolvers.drops{chance=100, nb=5, {ego_chance=100} }, diff --git a/game/modules/tome/data/zones/vor-armoury/objects.lua b/game/modules/tome/data/zones/vor-armoury/objects.lua index 8087b04f7ce00b6ff50c021c20f0a9eaea2e2f5f..82b327ef5b77826e253511375b7b3f33a1a5bf05 100644 --- a/game/modules/tome/data/zones/vor-armoury/objects.lua +++ b/game/modules/tome/data/zones/vor-armoury/objects.lua @@ -19,33 +19,6 @@ load("/data/general/objects/objects-far-east.lua") -local Stats = require"engine.interface.ActorStats" - -newEntity{ base = "BASE_GREATSWORD", - define_as = "MURDERBLADE", rarity=false, - name = "Warmaster Gnarg's Murderblade", unique=true, - unided_name = "blood-etched greatsword", color=colors.CRIMSON, - desc = [[A blood etched greatsword, it has seen many foes. From the inside.]], - - require = { stat = { str=35 }, }, - cost = 300, - material_level = 5, - combat = { - dam = 54, - apr = 19, - physcrit = 4.5, - dammod = {str=1.2}, - }, - wielder = { - see_invisible = 25, - inc_stats = { [Stats.STAT_CON] = 5, [Stats.STAT_STR] = 5, [Stats.STAT_DEX] = 5, }, - talents_types_mastery = { - ["technique/2hweapon-cripple"] = 0.2, - ["technique/2hweapon-offense"] = 0.2, - }, - }, -} - newEntity{ define_as = "ATHAME", quest=true, unique=true, identified=true, no_unique_lore=true, type = "misc", subtype="misc", diff --git a/game/modules/tome/data/zones/vor-pride/npcs.lua b/game/modules/tome/data/zones/vor-pride/npcs.lua index b888b232efff8a903b5356918f90773945c0f829..b415fab5b7c3d52fd0816acd5328fb136be1c4ac 100644 --- a/game/modules/tome/data/zones/vor-pride/npcs.lua +++ b/game/modules/tome/data/zones/vor-pride/npcs.lua @@ -47,7 +47,7 @@ newEntity{ base="BASE_NPC_ORC_VOR", define_as = "VOR", resolvers.equip{ {type="weapon", subtype="staff", ego_change=100, autoreq=true}, {type="armor", subtype="cloth", ego_change=100, autoreq=true}, - {type="armor", subtype="head", defined="CROWN_ELEMENTS", random_art_replace={chance=75, rarity=250, level_range={40, 50}}, autoreq=true}, + {type="armor", subtype="head", defined="CROWN_ELEMENTS", random_art_replace={chance=75}, autoreq=true}, }, resolvers.drops{chance=100, nb=1, {defined="ORB_ELEMENTS"} }, resolvers.drops{chance=20, nb=1, {defined="JEWELER_TOME"} }, diff --git a/game/modules/tome/data/zones/vor-pride/objects.lua b/game/modules/tome/data/zones/vor-pride/objects.lua index 827607db2bed5bfa56ba3fce688966c08b9f5dd9..2126bb620ec602ba146ba6168630e958d0f14e33 100644 --- a/game/modules/tome/data/zones/vor-pride/objects.lua +++ b/game/modules/tome/data/zones/vor-pride/objects.lua @@ -22,33 +22,6 @@ load("/data/general/objects/lore/sunwall.lua") local Stats = require"engine.interface.ActorStats" -newEntity{ base = "BASE_LEATHER_CAP", - define_as = "CROWN_ELEMENTS", rarity=false, - name = "Crown of the Elements", unique=true, - unided_name = "jeweled crown", color=colors.DARK_GREY, - desc = [[Jeweled crown]], - cost = 500, - material_level = 5, - wielder = { - inc_stats = { [Stats.STAT_CON] = 5, [Stats.STAT_WIL] = 3, }, - resists={ - [DamageType.FIRE] = 15, - [DamageType.COLD] = 15, - [DamageType.ACID] = 15, - [DamageType.LIGHTNING] = 15, - }, - melee_project={ - [DamageType.FIRE] = 10, - [DamageType.COLD] = 10, - [DamageType.ACID] = 10, - [DamageType.LIGHTNING] = 10, - }, - see_invisible = 15, - combat_armor = 5, - fatigue = 5, - }, -} - -- Artifact, randomly dropped in Vor Pride, and only there newEntity{ base = "BASE_SCROLL", subtype="tome", name = "Tome of Wildfire", unided_name = "burning book", unique=true, no_unique_lore=true, diff --git a/game/modules/tome/resolvers.lua b/game/modules/tome/resolvers.lua index 9e81fe55dff95d0dfd918e3a64a95c7f74d7c904..aa256ca788f0530e18f3c2b8d788b35b0b002682 100644 --- a/game/modules/tome/resolvers.lua +++ b/game/modules/tome/resolvers.lua @@ -26,12 +26,18 @@ function resolvers.calc.equip(t, e) print("Equipment resolver for", e.name) -- Iterate of object requests, try to create them and equip them for i, filter in ipairs(t[1]) do - print("Equipment resolver", e.name, filter.type, filter.subtype) + print("Equipment resolver", e.name, filter.type, filter.subtype, filter.defined) local o if not filter.defined then o = game.zone:makeEntity(game.level, "object", filter, nil, true) else - o = game.zone:makeEntityByName(game.level, "object", filter.defined) + local forced + o, forced = game.zone:makeEntityByName(game.level, "object", filter.defined, filter.random_art_replace and true or false) + -- If we forced the generation this means it was already found + if forced then + print("Serving unique "..o.name.." but forcing replacement drop") + filter.random_art_replace.chance = 100 + end end if o then print("Zone made us an equipment according to filter!", o:getName())