Skip to content
Snippets Groups Projects
Commit 02a348a1 authored by dg's avatar dg
Browse files

Sometimes the Old Forest is overrun by crystals

git-svn-id: http://svn.net-core.org/repos/t-engine4@6645 51575b47-30f0-44d4-a5cc-537603b46e54
parent 0339d1c2
No related branches found
No related tags found
No related merge requests found
......@@ -424,6 +424,77 @@ newEntity{ base = "BASE_GEM",
},
}
newEntity{ base = "BASE_STAFF",
power_source = {arcane=true},
unique = true, define_as = "CRYSTAL_SHARD",
name = "Crystal Shard",
unided_name = "crystalline tree branch",
flavor_name = "magestaff",
level_range = {10, 22},
color=colors.BLUE, image = "object/artifact/crystal_shard.png",
rarity = 300,
desc = [[This crystalline tree branch is remarkably rigid, and refracts light in myriad colors. Gazing at it entrances you, and you worry where its power may have come from.]],
cost = 200,
material_level = 2,
require = { stat = { mag=20 }, },
combat = {
dam = 16,
apr = 4,
dammod = {mag=1.3},
damtype = DamageType.ARCANE,
convert_damage = {
[DamageType.BLIGHT] = 50,
},
},
wielder = {
combat_spellpower = 14,
combat_spellcrit = 4,
inc_damage={
[DamageType.ARCANE] = 18,
[DamageType.BLIGHT] = 18,
},
resists={
[DamageType.ARCANE] = 10,
[DamageType.BLIGHT] = 10,
},
damage_affinity={
[DamageType.ARCANE] = 20,
},
},
max_power = 45, power_regen = 1,
use_power = { name = "create living shards of crystal", power = 45, use = function(self, who)
if not who:canBe("summon") then game.logPlayer(who, "You cannot summon; you are suppressed!") return end
local NPC = require "mod.class.NPC"
local list = NPC:loadList("/data/general/npcs/crystal.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 crystal = game.zone:finishEntity(game.level, "actor", e)
crystal.make_escort = nil
crystal.silent_levelup = true
crystal.faction = who.faction
crystal.ai = "summoned"
crystal.ai_real = "dumb_talented_simple"
crystal.summoner = who
crystal.summon_time = 10
local setupSummon = getfenv(who:getTalentFromId(who.T_SPIDER).action).setupSummon
setupSummon(who, crystal, x, y)
if who:knowTalent(who.T_BLIGHTED_SUMMONING) then
crystal:learnTalent(crystal.T_BONE_SHIELD, true, 3)
crystal:forceUseTalent(crystal.T_BONE_SHIELD, {ignore_energy=true})
end
game:playSoundNear(who, "talents/ice")
end
return {id=true, used=true}
end },
}
newEntity{ base = "BASE_CLOTH_ARMOR",
power_source = {arcane=true},
define_as = "BLACK_ROBE", rarity=false,
......
game/modules/tome/data/gfx/shockbolt/npc/elemental_light_wisp.png

5.71 KiB

game/modules/tome/data/gfx/shockbolt/object/artifact/crystal_shard.png

5.25 KiB

......@@ -52,6 +52,7 @@ newEntity{ define_as = "SHARDSKIN",
max_life = 200, life_rating = 17, fixed_rating = true,
stats = { str=15, dex=10, cun=8, mag=20, wil=20, con=20 },
rank = 4,
vim_regen = 5,
size_category = 5,
infravision = 10,
instakill_immune = 1,
......@@ -62,15 +63,16 @@ newEntity{ define_as = "SHARDSKIN",
resists = { [DamageType.NATURE] = -50 },
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
resolvers.equip{ {type="armor", subtype="shield", defined="WRATHROOT_SHIELD", random_art_replace={chance=75}, autoreq=true}, },
resolvers.equip{ {type="weapon", subtype="staff", defined="CRYSTAL_SHARD", random_art_replace={chance=75}, autoreq=true}, },
resolvers.drops{chance=100, nb=5, {tome_drops="boss"} },
resolvers.talents{
[Talents.T_ARMOUR_TRAINING]={base=4, every=5, max=15},
[Talents.T_STUN]={base=2, every=6, max=6},
[Talents.T_ICE_STORM]={base=1, every=6, max=6},
[Talents.T_TIDAL_WAVE]={base=1, every=6, max=6},
[Talents.T_FREEZE]={base=2, every=6, max=6},
[Talents.T_GRAVITY_WELL]={base=2, every=6, max=6},
[Talents.T_BLOOD_GRASP]={base=2, every=6, max=6},
[Talents.T_FIRE_STORM]={base=1, every=6, max=6},
[Talents.T_SOUL_ROT]={base=1, every=6, max=6},
[Talents.T_FLAME]={base=2, every=6, max=6},
},
autolevel = "caster",
......
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