Newer
Older
-- Copyright (C) 2009 - 2014 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
dg
committed
local Talents = require "engine.interface.ActorTalents"
for def, e in pairs(game.state:getWorldArtifacts()) do
importEntity(e)
print("Importing "..e.name.." into world artifacts")
end
-- This file describes artifacts not bound to a special location, they can be found anywhere
newEntity{ base = "BASE_GEM",
power_source = {arcane=true},
unique = true,
unided_name = "windy gem",
name = "Windborne Azurite", subtype = "blue",
color = colors.BLUE, image = "object/artifact/windborn_azurite.png",
level_range = {18, 40},
desc = [[Air currents swirl around this bright blue jewel.]],
rarity = 240,
cost = 200,
identified = false,
material_level = 4,
wielder = {
inc_stats = {[Stats.STAT_DEX] = 8, [Stats.STAT_CUN] = 8 },
cancel_damage_chance = 8, -- add to tooltip
damage_affinity={
[DamageType.LIGHTNING] = 20,
},
movement_speed = 0.2,
},
imbue_powers = {
}
-- Low base values because you can stack affinity and resist
-- The 3rd type is pretty meaningless balance-wise. Magic debuffs hardly matter. The real advantage is the affinity.
newEntity{ base = "BASE_INFUSION",
name = "Primal Infusion", unique=true, image = "object/artifact/primal_infusion.png",
desc = [[This wild infusion has evolved.]],
unided_name = "pulsing infusion",
level_range = {15, 40},
rarity = 300,
cost = 300,
material_level = 3,
inscription_kind = "protect",
inscription_data = {
dur = 6,
power = 10,
use_stat_mod = 0.1,
what = {physical=true, mental=true, magical=true},
},
inscription_talent = "INFUSION:_PRIMAL",
}
power_source = {arcane=true},
unique = true,
name = "Staff of Destruction",
unided_name = "darkness infused staff", image = "object/artifact/staff_of_destruction.png",
level_range = {20, 25},
desc = [[This unique-looking staff is carved with runes of destruction.]],
require = { stat = { mag=24 }, },
modes = {"fire", "cold", "lightning", "arcane"},
damtype = DamageType.FIRE,
is_greater = true,
},
wielder = {
combat_spellpower = 10,
[DamageType.FIRE] = 20,
[DamageType.LIGHTNING] = 20,
[DamageType.COLD] = 20,
[DamageType.ARCANE] = 20,
learn_talent = {[Talents.T_COMMAND_STAFF] = 1},
talent_on_spell = { {chance=10, talent=Talents.T_IMPENDING_DOOM, level=1}},
power_source = {nature=true},
name = "Vargh Redemption", color = colors.LIGHT_BLUE, image="object/artifact/ring_vargh_redemption.png",
unided_name = "sea-blue ring",
desc = [[This azure ring seems to be always moist to the touch.]],
level_range = {10, 20},
rarity = 150,
max_power = 60, power_regen = 1,
use_power = { name = "summon a tidal wave", power = 60,
use = function(self, who)
local duration = 7
local radius = 1
local dam = 20
-- Add a lasting map effect
game.level.map:addEffect(who,
who.x, who.y, duration,
engine.DamageType.WAVE, {dam=dam, x=who.x, y=who.y},
engine.MapEffect.new{color_br=30, color_bg=60, color_bb=200, effect_shader="shader_images/water_effect1.png"},
end,
false
)
game.logSeen(who, "%s brandishes the %s, calling forth the might of the oceans!", who.name:capitalize(), self:getName())
return {id=true, used=true}
inc_stats = { [Stats.STAT_WIL] = 4, [Stats.STAT_CON] = 6 },
resists = {
[DamageType.COLD] = 25,
[DamageType.NATURE] = 10,
},
},
}
power_source = {nature=true},
name = "Ring of the Dead", color = colors.DARK_GREY, image = "object/artifact/jewelry_ring_of_the_dead.png",
desc = [[This ring is imbued with powers from beyond the grave. It is said that those who wear it may find a new path when all other roads turn dim.]],
level_range = {35, 42},
rarity = 250,
cost = 500,
material_level = 4,
special_desc = function(self) return "Will bring you back from death, but only once!" end,
die_at = -100,
combat_physresist = 10,
combat_mentalresist = 10,
combat_spellresist = 10,
power_source = {arcane=true},
name = "Elemental Fury", color = colors.PURPLE, image = "object/artifact/ring_elemental_fury.png",
unided_name = "multi-hued ring",
desc = [[This ring shines with many colors.]],
level_range = {15, 30},
special_desc = function(self) return "All your damage is converted and split into arcane, fire, cold and lightning." end,
elemental_mastery = 0.25,
[DamageType.ARCANE] = 12,
[DamageType.FIRE] = 12,
[DamageType.COLD] = 12,
[DamageType.LIGHTNING] = 12,
power_source = {technique=true},
name = "Feathersteel Amulet", color = colors.WHITE, image = "object/artifact/feathersteel_amulet.png",
unided_name = "light amulet",
desc = [[The weight of the world seems a little lighter with this amulet around your neck.]],
level_range = {5, 15},
rarity = 200,
cost = 90,
material_level = 2,
wielder = {
max_encumber = 20,
fatigue = -20,
movement_speed = 0.2,
newEntity{ base = "BASE_AMULET", define_as = "SET_GARKUL_TEETH",
power_source = {technique=true},
name = "Garkul's Teeth", color = colors.YELLOW, image = "object/artifact/amulet_garkuls_teeth.png",
desc = [[Hundreds of humanoid teeth have been strung together on multiple strands of thin leather, creating this tribal necklace. One would have to assume that these are not the teeth of Garkul the Devourer but rather the teeth of Garkul's many meals.]],
},
talents_types_mastery = {
["technique/2hweapon-cripple"] = 0.1,
["technique/2hweapon-offense"] = 0.1,
["technique/warcries"] = 0.1,
["technique/bloodthirst"] = 0.1,
combat_physresist = 18,
combat_mentalresist = 18,
use_talent = { id = Talents.T_SHATTERING_SHOUT, level = 4, power = 10 },
set_list = { {"define_as", "HELM_OF_GARKUL"} },
on_set_complete = function(self, who)
self:specialSetAdd({"wielder","die_at"}, -100)
game.logSeen(who, "#CRIMSON#As you wear both Garkul's heirlooms you can feel the mighty warrior's spirit flowing through you.")
end,
on_set_broken = function(self, who)
game.logPlayer(who, "#CRIMSON#The spirit of Garkul fades away.")
end,
power_source = {nature=true},
name = "Summertide Phial", image="object/artifact/summertide_phial.png",
level_range = {1, 10},
desc = [[A small crystal phial that captured Sunlight during the Summertide.]],
max_power = 15, power_regen = 1,
use_power = { name = "call light", power = 10,
use = function(self, who)
who:project({type="ball", range=0, radius=20}, who.x, who.y, engine.DamageType.LITE, 100)
game.logSeen(who, "%s brandishes the %s and banishes all shadows!", who.name:capitalize(), self:getName())
return {id=true, used=true}
inc_damage = {[DamageType.LIGHT]=10},
resists = {[DamageType.LIGHT]=30},
power_source = {arcane=true},
name = "Burning Star", image = "object/artifact/jewel_gem_burning_star.png",
level_range = {20, 30},
desc = [[The first Halfling mages during the Age of Allure discovered how to capture the Sunlight and infuse gems with it.
This star is the culmination of their craft. Light radiates from its ever-shifting yellow surface.]],
max_power = 30, power_regen = 1,
use_power = { name = "map surroundings", power = 30,
game.logSeen(who, "%s brandishes the %s which radiates in all directions!", who.name:capitalize(), self:getName())
return {id=true, used=true}
power_source = {arcane=true},
unided_name = "a dark, fleshy mass", image = "object/artifact/dark_red_heart.png",
level_range = {30, 40},
color = colors.RED,
encumber = 1,
rarity = 300,
desc = [[This dark red heart still beats despite being separated from its owner. It also snuffs out any light source that comes near it.]],
resists_cap = { [DamageType.LIGHT] = 10 },
resists = { [DamageType.LIGHT] = 30 },
talents_types_mastery = { ["cunning/stealth"] = 0.1 },
combat_dam = 7,
},
max_power = 15, power_regen = 1,
use_talent = { id = Talents.T_BLOOD_GRASP, level = 3, power = 10 },
}
power_source = {nature=true},
unique = true,
type = "potion", subtype="potion",
name = "Blood of Life",
unided_name = "bloody phial",
level_range = {1, 50},
display = '!', color=colors.VIOLET, image="object/artifact/potion_blood_of_life.png",
desc = [[This vial of blood was drawn from an ancient race in the Age of Haze. Some of the power and vitality of those early days of the world still flows through it. "Drink me, mortal," the red liquid seems to whisper in your thoughts. "I will bring you light beyond darkness. Those who taste my essence fear not the death of flesh. Drink me, mortal, if you value your life..."]],
use_simple = { name = "quaff the Blood of Life to grant an extra life", use = function(self, who)
game.logSeen(who, "%s quaffs the %s!", who.name:capitalize(), self:getName())
if not who:attr("undead") then
who.blood_life = true
game.logPlayer(who, "#LIGHT_RED#You feel the Blood of Life rushing through your veins.")
else
game.logPlayer(who, "The Blood of Life seems to have no effect on you.")
end
return {used=true, id=true, destroy=true}
dg
committed
newEntity{ base = "BASE_LEATHER_BOOT",
power_source = {technique=true},
dg
committed
unique = true,
unided_name = "pair of yellow boots",
desc = [[The boots of a Rogue outcast, who knew that the best way to deal with a problem was to run from it.]],
on_id_lore = "eden-guile",
dg
committed
color = colors.YELLOW,
level_range = {1, 20},
dg
committed
cost = 100,
dg
committed
wielder = {
combat_armor = 1,
combat_def = 2,
fatigue = 2,
talents_types_mastery = { ["cunning/survival"] = 0.2 },
inc_stats = { [Stats.STAT_CUN] = 3, },
},
max_power = 50, power_regen = 1,
dg
committed
use = function(self, who)
who:setEffect(who.EFF_SPEED, 8, {power=math.min(0.20 + who:getCun() / 200, 0.7)})
return {id=true, used=true}
dg
committed
end
},
}
newEntity{ base = "BASE_SHIELD",
power_source = {nature=true, technique=true},
dg
committed
unique = true,
name = "Fire Dragon Shield", image = "object/artifact/fire_dragon_shield.png",
dg
committed
unided_name = "dragon shield",
moddable_tile = "special/%s_fire_dragon_shield",
moddable_tile_big = true,
desc = [[This large shield was made using scales of many fire drakes from the lost land of Tar'Eyal.]],
dg
committed
color = colors.LIGHT_RED,
metallic = false,
level_range = {27, 35},
rarity = 300,
require = { stat = { str=28 }, },
cost = 350,
dg
committed
special_combat = {
dam = 58,
block = 220,
dg
committed
dammod = {str=1},
damtype = DamageType.FIRE,
},
wielder = {
resists={[DamageType.FIRE] = 35},
on_melee_hit={[DamageType.FIRE] = 17},
dg
committed
combat_def = 16,
combat_def_ranged = 15,
fatigue = 20,
learn_talent = { [Talents.T_BLOCK] = 5, },
dg
committed
},
}
power_source = {technique=true},
name = "Titanic", image = "object/artifact/shield_titanic.png",
moddable_tile = "special/%s_titanic",
moddable_tile_big = true,
desc = [[This shield made of the darkest stralite is huge, heavy and very solid.]],
color = colors.GREY,
level_range = {20, 30},
rarity = 270,
require = { stat = { str=37 }, },
cost = 300,
block = 320,
},
wielder = {
combat_armor = 18,
combat_def = 20,
combat_def_ranged = 10,
fatigue = 30,
learn_talent = { [Talents.T_BLOCK] = 4, },
newEntity{ base = "BASE_SHIELD",
power_source = {nature=true},
unique = true,
name = "Black Mesh", image = "object/artifact/shield_mesh.png",
unided_name = "pile of tendrils",
desc = [[Black, interwoven tendrils form this mesh that can be used as a shield. It reacts visibly to your touch, clinging to your arm and engulfing it in a warm, black mass.]],
color = colors.BLACK,
level_range = {15, 30},
rarity = 270,
require = { stat = { str=20 }, },
moddable_tile = "special/%s_black_mesh",
moddable_tile_big = true,
metallic = false,
special_combat = {
dam = resolvers.rngavg(25,35),
block = resolvers.rngavg(90, 120),
physcrit = 5,
dammod = {str=1},
},
wielder = {
combat_armor = 2,
combat_def = 8,
combat_def_ranged = 8,
fatigue = 12,
learn_talent = { [Talents.T_BLOCK] = 3, },
resists = { [DamageType.BLIGHT] = 15, [DamageType.DARKNESS] = 30, },
stamina_regen = 2,
},
DarkGod
committed
on_block = {desc = "30% chance of pulling in the attacker", fct = function(self, who, src, type, dam, eff)
if rng.percent(30) then
if not src then return end
src:pull(who.x, who.y, 15)
game.logSeen(src, "Black tendrils shoot out of the mesh and pull %s to you!", src.name:capitalize())
if core.fov.distance(who.x, who.y, src.x, src.y) <= 1 and src:canBe('pin') then
src:setEffect(src.EFF_CONSTRICTED, 6, {src=who})
end
end
DarkGod
committed
end,}
dg
committed
newEntity{ base = "BASE_LIGHT_ARMOR",
power_source = {technique=true},
dg
committed
unique = true,
name = "Rogue Plight", image = "object/artifact/armor_rogue_plight.png",
DarkGod
committed
define_as = "ROGUE_PLIGHT",
dg
committed
unided_name = "blackened leather armour",
desc = [[No rogue blades shall incapacitate the wearer of this armour.]],
dg
committed
level_range = {25, 40},
rarity = 270,
cost = 200,
DarkGod
committed
sentient = true,
global_speed = 0.25, -- act every 4th turn
dg
committed
require = { stat = { str=22 }, },
DarkGod
committed
on_wear = function(self, who)
self.worn_by = who
end,
on_takeoff = function(self, who)
self.worn_by = nil
end,
special_desc = function(self) return "Transfers a bleed, poison, or wound to its source or a nearby enemy every 4 turns."
end,
dg
committed
wielder = {
combat_def = 6,
combat_armor = 7,
fatigue = 7,
DarkGod
committed
ignore_direct_crits = 30,
dg
committed
inc_stats = { [Stats.STAT_WIL] = 5, [Stats.STAT_CON] = 4, },
DarkGod
committed
resists={[DamageType.NATURE] = 35},
dg
committed
},
DarkGod
committed
act = function(self)
self:useEnergy()
if not self.worn_by then return end -- items act even when not equipped
local who = self.worn_by
-- Make sure the item is worn
-- This should be redundant but whatever
local o, item, inven_id = who:findInAllInventoriesBy("define_as", "ROGUE_PLIGHT")
if not o or not who:getInven(inven_id).worn then return end
local Map = require "engine.Map"
for eff_id, p in pairs(who.tmp) do
-- p only has parameters, we need to get the effect definition (e) to check subtypes
local e = who.tempeffect_def[eff_id]
if e.status == "detrimental" and e.subtype and (e.subtype.bleed or e.subtype.poison or e.subtype.wound) then
DarkGod
committed
-- Copy the effect parameters then change only the source
-- This will preserve everything passed to the debuff in setEffect but will use the new source for +damage%, etc
local effectParam = who:copyEffect(eff_id)
effectParam.src = who
if p.src and p.src.setEffect and not p.src.dead then -- Most debuffs don't define a source
p.src:setEffect(eff_id, p.dur, effectParam)
who:removeEffect(eff_id)
game.logPlayer(who, "#CRIMSON#Rogue Plight transfers an effect to its source!")
return true
else
-- If there is no source move the debuff to an adjacent enemy instead
-- If there is no source or adjacent enemy the effect fails
for _, coor in pairs(util.adjacentCoords(who.x, who.y)) do
local act = game.level.map(coor[1], coor[2], Map.ACTOR)
if act then
act:setEffect(eff_id, p.dur, effectParam)
who:removeEffect(eff_id)
game.logPlayer(who, "#CRIMSON#Rogue Plight transfers an effect to a nearby enemy!")
return true
end
DarkGod
committed
return true
dg
committed
}
newEntity{
power_source = {nature=true},
dg
committed
unique = true,
type = "misc", subtype="egg",
unided_name = "dark egg",
name = "Mummified Egg-sac of Ungolë", image = "object/artifact/mummified_eggsack.png",
dg
committed
level_range = {20, 35},
rarity = 190,
dg
committed
encumber = 2,
desc = [[Dry and dusty to the touch, it still seems to retain some shadow of life.]],
dg
committed
carrier = {
lite = -2,
},
max_power = 100, power_regen = 1,
use_power = { name = "summon spiders", power = 80, use = function(self, who)
if not who:canBe("summon") then game.logPlayer(who, "You cannot summon; you are suppressed!") return end
dg
committed
local NPC = require "mod.class.NPC"
local list = NPC:loadList("/data/general/npcs/spider.lua")
for i = 1, 2 do
-- Find space
local x, y = util.findFreeGrid(who.x, who.y, 5, true, {[engine.Map.ACTOR]=true})
if not x then break end
local e
repeat e = rng.tableRemove(list)
until not e.unique and e.rarity
local spider = game.zone:finishEntity(game.level, "actor", e)
spider.make_escort = nil
spider.silent_levelup = true
dg
committed
spider.faction = who.faction
spider.ai = "summoned"
spider.ai_real = "dumb_talented_simple"
spider.summoner = who
spider.summon_time = 10
spider.exp_worth = 0
dg
committed
local setupSummon = getfenv(who:getTalentFromId(who.T_SPIDER).action).setupSummon
setupSummon(who, spider, x, y)
dg
committed
game:playSoundNear(who, "talents/slime")
end
return {id=true, used=true}
end },
}
newEntity{ base = "BASE_HELM",
power_source = {technique=true},
unique = true,
name = "Helm of the Dwarven Emperors", image = "object/artifact/helm_of_the_dwarven_emperors.png",
unided_name = "shining helm",
desc = [[A Dwarven helm embedded with a single diamond that can banish all underground shadows.]],
level_range = {20, 28},
rarity = 240,
cost = 700,
material_level = 2,
combat_armor = 6,
fatigue = 4,
blind_immune = 0.3,
confusion_immune = 0.3,
inc_stats = { [Stats.STAT_WIL] = 3, [Stats.STAT_MAG] = 4, },
max_power = 30, power_regen = 1,
use_talent = { id = Talents.T_SUN_FLARE, level = 3, power = 30 },
on_wear = function(self, who)
if who.descriptor and who.descriptor.race == "Dwarf" then
local Stats = require "engine.interface.ActorStats"
self:specialWearAdd({"wielder","inc_stats"}, { [Stats.STAT_CUN] = 5, [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 5, })
game.logPlayer(who, "#LIGHT_BLUE#The legacy of Dwarven Emperors grants you their wisdom.")
power_source = {technique=true},
name = "Silent Blade", image = "object/artifact/dagger_silent_blade.png",
moddable_tile = "special/%s_dagger_silent_blade",
moddable_tile_big = true,
desc = [[A thin, dark dagger that seems to meld seamlessly into the shadows.]],
rarity = 200,
require = { stat = { cun=25 }, },
cost = 250,
no_stealth_break = true,
melee_project={[DamageType.RANDOM_SILENCE] = 10},
},
dg
committed
newEntity{ base = "BASE_KNIFE", define_as = "ART_PAIR_MOON",
power_source = {arcane=true},
moddable_tile = "special/%s_dagger_moon",
moddable_tile_big = true,
desc = [[A viciously curved blade that a folk story says is made from a material that originates from the moon. Devouring the light around it, it fades.]],
require = { stat = { dex=24, cun=24 }, },
melee_project={[DamageType.DARKNESS] = 20},
[DamageType.DARKNESS] = 10,
set_list = { {"define_as","ART_PAIR_STAR"} },
on_set_complete = function(self, who)
self:specialSetAdd({"wielder","lite"}, 1)
self:specialSetAdd({"combat","melee_project"}, {[engine.DamageType.RANDOM_CONFUSION]=10})
self:specialSetAdd({"wielder","inc_damage"}, {[engine.DamageType.DARKNESS]=15})
game.logSeen(who, "#ANTIQUE_WHITE#The two blades glow brightly as they are brought close together.")
dg
committed
end,
on_set_broken = function(self, who)
game.logPlayer(who, "#ANTIQUE_WHITE#The light from the two blades fades as they are separated.")
dg
committed
end,
dg
committed
newEntity{ base = "BASE_KNIFE", define_as = "ART_PAIR_STAR",
power_source = {arcane=true},
unided_name = "jagged blade", image = "object/artifact/dagger_star.png",
moddable_tile = "special/%s_dagger_star",
moddable_tile_big = true,
desc = [[Legend tells of a blade, shining bright as a star. Forged from a material fallen from the skies, it glows.]],
require = { stat = { dex=24, cun=24 }, },
melee_project={[DamageType.LIGHT] = 20},
[DamageType.LIGHT] = 10,
set_list = { {"define_as","ART_PAIR_MOON"} },
on_set_complete = function(self, who)
self:specialSetAdd({"wielder","lite"}, 1)
self:specialSetAdd({"combat","melee_project"}, {[engine.DamageType.RANDOM_BLIND]=10})
self:specialSetAdd({"wielder","inc_damage"}, {[engine.DamageType.LIGHT]=15})
dg
committed
end,
power_source = {technique=true},
name = "Ring of the War Master", color = colors.DARK_GREY, image = "object/artifact/ring_of_war_master.png",
desc = [[A blade-edged ring that radiates power. As you put it on, strange thoughts of pain and destruction come to your mind.]],
rarity = 200,
cost = 500,
material_level = 5,
wielder = {
inc_stats = { [Stats.STAT_STR] = 3, [Stats.STAT_DEX] = 3, [Stats.STAT_CON] = 3, },
combat_apr = 15,
combat_dam = 10,
combat_physcrit = 5,
["technique/2hweapon-cripple"] = 0.3,
["technique/2hweapon-offense"] = 0.3,
["technique/2hweapon-assault"] = 0.3,
["technique/archery-bow"] = 0.3,
["technique/archery-sling"] = 0.3,
["technique/archery-training"] = 0.3,
["technique/archery-utility"] = 0.3,
["technique/archery-excellence"] = 0.3,
["technique/combat-techniques-active"] = 0.3,
["technique/combat-techniques-passive"] = 0.3,
["technique/combat-training"] = 0.3,
["technique/dualweapon-attack"] = 0.3,
["technique/dualweapon-training"] = 0.3,
["technique/shield-defense"] = 0.3,
["technique/shield-offense"] = 0.3,
["technique/warcries"] = 0.3,
["technique/superiority"] = 0.3,
["technique/pugilism"] = 0.3,
["technique/unarmed-discipline"] = 0.3,
["technique/unarmed-training"] = 0.3,
["technique/grappling"] = 0.3,
["technique/finishing-moves"] = 0.3,
power_source = {technique=true},
name = "Unstoppable Mauler", color = colors.UMBER, image = "object/artifact/unstoppable_mauler.png",
desc = [[A huge greatmaul of incredible weight. Wielding it, you feel utterly unstoppable.]],
level_range = {23, 30},
rarity = 270,
require = { stat = { str=40 }, },
cost = 250,
material_level = 3,
combat = {
pin_immune = 1,
knockback_immune = 1,
},
max_power = 18, power_regen = 1,
use_talent = { id = Talents.T_FEARLESS_CLEAVE, level = 3, power = 18 },
power_source = {technique=true},
name = "Crooked Club", color = colors.GREEN, image = "object/artifact/weapon_crooked_club.png",
moddable_tile = "special/%s_weapon_crooked_club",
moddable_tile_big = true,
desc = [[An oddly twisted club with a hefty weight on the end. There's something very strange about it.]],
melee_project={[DamageType.RANDOM_CONFUSION_PHYS] = 14},
talent_on_hit = { T_BATTLE_CALL = {level=1, chance=10},},
burst_on_crit = {
[DamageType.PHYSKNOCKBACK] = 20,
},
newEntity{ base = "BASE_CLOTH_ARMOR",
unique = true,
name = "Spider-Silk Robe of Spydrë", color = colors.DARK_GREEN, image = "object/artifact/robe_spider_silk_robe_spydre.png",
unided_name = "spider-silk robe",
desc = [[This set of robes is made wholly of spider silk. It looks outlandish and some sages think it came from another world, probably through a farportal.]],
level_range = {20, 30},
rarity = 190,
cost = 250,
material_level = 3,
wielder = {
combat_def = 10,
inc_stats = { [Stats.STAT_CON] = 5, [Stats.STAT_WIL] = 4, },
combat_mindpower = 10,
combat_mindcrit = 5,
combat_spellresist = 10,
combat_physresist = 10,
inc_damage={[DamageType.NATURE] = 10, [DamageType.MIND] = 10, [DamageType.ACID] = 10},
resists={[DamageType.NATURE] = 30},
on_melee_hit={[DamageType.POISON] = 20, [DamageType.SLIME] = 20},
},
}
newEntity{ base = "BASE_HELM", define_as = "HELM_KROLTAR",
power_source = {technique=true},
unique = true,
name = "Dragon-helm of Kroltar", image = "object/artifact/dragon_helm_of_kroltar.png",
unided_name = "dragon-helm",
desc = [[A visored steel helm, embossed and embellished with gold, that bears as its crest the head of Kroltar, the greatest of the fire drakes.]],
require = { talent = { {Talents.T_ARMOUR_TRAINING,3} }, stat = { str=35 }, },
level_range = {37, 45},
rarity = 280,
cost = 400,
wielder = {
inc_stats = { [Stats.STAT_STR] = 5, [Stats.STAT_CON] = 5, [Stats.STAT_LCK] = -4, },
combat_def = 5,
combat_armor = 9,
fatigue = 10,
},
max_power = 45, power_regen = 1,
use_talent = { id = Talents.T_WARSHOUT, level = 2, power = 45 },
set_list = { {"define_as","SCALE_MAIL_KROLTAR"} },
on_set_complete = function(self, who)
self:specialSetAdd("skullcracker_mult", 1)
self:specialSetAdd({"wielder","combat_spellresist"}, 15)
self:specialSetAdd({"wielder","combat_mentalresist"}, 15)
self:specialSetAdd({"wielder","combat_physresist"}, 15)
game.logPlayer(who, "#GOLD#As the helm of Kroltar approaches the your scale armour, they begin to fume and emit fire.")
end,
on_set_broken = function(self, who)
game.logPlayer(who, "#GOLD#The fumes and fire fade away.")
end,
}
newEntity{ base = "BASE_HELM",
power_source = {technique=true},
unique = true,
name = "Crown of Command", image = "object/artifact/crown_of_command.png",
unided_name = "unblemished silver crown",
desc = [[This crown was worn by the Halfling king Roupar, who ruled over the Nargol lands in the Age of Dusk. Those were dark times, and the king enforced order and discipline under the harshest of terms. Any who deviated were punished, any who disagreed were repressed, and many disappeared without a trace into his numerous prisons. All must be loyal to the crown or suffer dearly. When he died without heir the crown was lost and his kingdom fell into chaos.]],
require = { stat = { cun=25 } },
level_range = {20, 35},
rarity = 280,
cost = 300,
inc_stats = { [Stats.STAT_CON] = 3, [Stats.STAT_WIL] = 10, },
combat_def = 3,
combat_armor = 6,
combat_mindpower = 5,
fatigue = 4,
resists = { [DamageType.PHYSICAL] = 8},
talents_types_mastery = { ["technique/superiority"] = 0.2, ["technique/field-control"] = 0.2 },
},
max_power = 60, power_regen = 1,
use_talent = { id = Talents.T_INDOMITABLE, level = 1, power = 60 },
on_wear = function(self, who)
self.worn_by = who
if who.descriptor and who.descriptor.race == "Halfling" then
local Stats = require "engine.interface.ActorStats"
self:specialWearAdd({"wielder","inc_stats"}, { [Stats.STAT_CUN] = 7, [Stats.STAT_STR] = 7, })
game.logPlayer(who, "#LIGHT_BLUE#You gain understanding of the might of your race.", self:getName())
end
end,
on_takeoff = function(self)
self.worn_by = nil
DarkGod
committed
power_source = {technique=true},
name = "Gloves of the Firm Hand", image = "object/artifact/gloves_of_the_firm_hand.png",
desc = [[These gloves make you feel rock steady! These magical gloves feel really soft to the touch from the inside. On the outside, magical stones create a rough surface that is constantly shifting. When you brace yourself, a magical ray of earth energy seems to automatically bind them to the ground, granting you increased stability.]],
level_range = {17, 27},
rarity = 210,
cost = 150,
material_level = 3,
wielder = {
stun_immune = 0.3,
talent_on_hit = { T_CLINCH = {level=3, chance=20}, T_MAIM = {level=3, chance=10}, T_TAKE_DOWN = {level=3, chance=10} },
name = "Dakhtun's Gauntlets", color = colors.STEEL_BLUE, image = "object/artifact/dakhtuns_gauntlets.png",
unided_name = "expertly-crafted dwarven-steel gauntlets",
desc = [[Fashioned by Grand Smith Dakhtun in the Age of Allure, these dwarven-steel gauntlets have been etched with golden arcane runes and are said to grant the wearer unparalleled physical and magical might.]],
level_range = {40, 50},
rarity = 300,
cost = 2000,
wielder = {
inc_stats = { [Stats.STAT_STR] = 6, [Stats.STAT_MAG] = 6 },
inc_damage = { [DamageType.PHYSICAL] = 10 },
combat_physcrit = 10,
combat_spellcrit = 10,