Skip to content
Snippets Groups Projects
Commit 360f9b24 authored by dg's avatar dg
Browse files

Boss artifacts can be found before the boss is killed, the boss will cheat and...

Boss artifacts can be found before the boss is killed, the boss will cheat and use it for combat but will drop something else


git-svn-id: http://svn.net-core.org/repos/t-engine4@1725 51575b47-30f0-44d4-a5cc-537603b46e54
parent c9c6c046
No related branches found
No related tags found
No related merge requests found
Showing
with 682 additions and 217 deletions
......@@ -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
......
......@@ -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
......
-- 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,
},
}
......@@ -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")
......@@ -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,
......
......@@ -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},
},
......
......@@ -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 },
}
......@@ -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", },
......
......@@ -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,
},
}
......@@ -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} },
......
......@@ -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,
},
}
......@@ -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} },
......
......@@ -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,
},
}
......@@ -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"} },
......
......@@ -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 },
}
......@@ -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} },
......
......@@ -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,
},
}
......@@ -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} },
......
......@@ -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, },
},
}
......@@ -85,4 +85,4 @@ newEntity{ define_as = "PEARL_LIFE_DEATH",
resists = {all = 7},
stun_immune = 1,
},
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment