Skip to content
Snippets Groups Projects
Forked from tome / Tales of MajEyal
5725 commits behind the upstream repository.
special-artifacts.lua 2.96 KiB
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009 - 2015 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"

load("/data/general/objects/staves.lua")

-- This file describes artifacts not bound to a special location or quest, but still special(they do not get randomly generated)

newEntity{ base = "BASE_STAFF", define_as = "TELOS_SPIRE",
	power_source = {arcane=true},
	unique = true,
	name = "Telos Spire of Power", image = "object/artifact/telos_spire_of_power.png",
	unided_name = "pulsing staff",
	flavor_name = "magestaff",
	level_range = {37, 50},
	color=colors.VIOLET,
	rarity = false,
	desc = [[Telos was an extremely powerful mage during the Age of Dusk, hated by his peers and feared by the common folk; he was hunted for a long while. He finally fell from his place of power, Telmur, but his spirit still lingers.]],
	cost = 400,
	material_level = 5,
	plot = true,

	require = { stat = { mag=48 }, },
	modes = {"fire", "cold", "lightning", "arcane"},
	combat = {
		sentient = "telos_full",
		is_greater = true,
		dam = 37,
		apr = 4,
		dammod = {mag=1.5},
		damtype = DamageType.BLIGHT,
	},
	wielder = {
		inc_stats = { [Stats.STAT_CUN] = 8, [Stats.STAT_MAG] = 7 },
		max_mana = 100,
		max_vim = 50,
		combat_spellpower = 30,
		combat_spellcrit = 30,
		combat_mentalresist = 16,
		combat_spellresist = 16,
		combat_critical_power = 30,
		spellsurge_on_crit = 7,
		damage_resonance = 15,
		inc_damage = { [DamageType.ARCANE] = 37, [DamageType.BLIGHT] = 37, [DamageType.COLD] = 37, [DamageType.DARKNESS] = 37, [DamageType.ACID] = 37, [DamageType.LIGHT] = 37, },
		damage_affinity = { [DamageType.ARCANE] = 15, [DamageType.BLIGHT] = 15, [DamageType.COLD] = 15, [DamageType.DARKNESS] = 15, [DamageType.ACID] = 15, [DamageType.LIGHT] = 15, },
		confusion_immune = 0.4,
		vim_on_crit = 6,
	},
	max_power = 15, power_regen = 1,
	use_power = { name = "turn into a corrupted losgoroth (poison, disease, cut and confusion immune; converts half damage into life drain; does not require breath", power = 15,
		use = function(self, who)
			game.logSeen(who, "%s brandishes %s, turning into a corrupted losgoroth!", who.name:capitalize(), self:getName())
			who:setEffect(who.EFF_CORRUPT_LOSGOROTH_FORM, 10, {})
			return {id=true, used=true}
		end
	},
}