diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua index 743d6fceb237b54bd5cc95417dc1c98b6948531f..6f1c897c8e34e6860cca24ea9f16baa338c52ce5 100644 --- a/game/modules/tome/data/general/objects/boss-artifacts.lua +++ b/game/modules/tome/data/general/objects/boss-artifacts.lua @@ -756,3 +756,48 @@ newEntity{ base = "BASE_GLOVES", define_as = "FLAMEWROUGHT", max_power = 24, power_regen = 1, use_talent = { id = Talents.T_RITCH_FLAMESPITTER_BOLT, level = 2, power = 6 }, } + +newEntity{ base = "BASE_GEM", define_as = "CRYSTAL_FOCUS", + power_source = {arcane=true}, + unique = true, + unided_name = "scintillating crystal", + name = "Crystal Focus", subtype = "multi-hued", + color = colors.WHITE, image="object/ametrine.png", + level_range = {5, 12}, + desc = [[This crystal radiates the power of the Spellblaze itself.]], + rarity = 200, + cost = 50, + material_level = 2, + + max_power = 1, power_regen = 1, + use_power = { name = "combine with a weapon", power = 1, use = function(self, who, gem_inven, gem_item) + who:showInventory("Fuse with which weapon?", who:getInven("INVEN"), function(o) return o.type == "weapon" and not o.egoed and not o.unique end, function(o, item) + local oldname = o:getName{do_color=true} + + -- Remove the gem + who:removeObject(gem_inven, gem_item) + who:sortInven(gem_inven) + + -- Change the weapon + o.name = "Crystalline "..o.name + o.unique = o.name + o.no_unique_lore = true + if o.combat and o.combat.dam then + o.combat.dam = o.combat.dam * 1.5 + o.combat.damtype = engine.DamageType.ARCANE + end + o.wielder = o.wielder or {} + o.wielder.combat_spellpower = 12 + o.wielder.combat_dam = 12 + o.wielder.inc_stats = o.wielder.inc_stats or {} + o.wielder.inc_stats[Stats.STAT_WIL] = 3 + o.wielder.inc_stats[Stats.STAT_CON] = 3 + o.wielder.inc_damage = o.wielder.inc_damage or {} + o.wielder.inc_damage[engine.DamageType.ARCANE] = 10 + who:sortInven() + who.changed = true + + game.logPlayer(who, "You fix the crystal on the %s and create the %s.", oldname, o:getName{do_color=true}) + end) + end }, +} diff --git a/game/modules/tome/data/zones/scintillating-caves/npcs.lua b/game/modules/tome/data/zones/scintillating-caves/npcs.lua index f0510324067ad7c10c3ad1b997fd785e506ef837..8cd97d971a8e1ff570c4e86935591f201039f94f 100644 --- a/game/modules/tome/data/zones/scintillating-caves/npcs.lua +++ b/game/modules/tome/data/zones/scintillating-caves/npcs.lua @@ -42,7 +42,7 @@ newEntity{ base="BASE_NPC_CRYSTAL", define_as = "SPELLBLAZE_CRYSTAL", instakill_immune = 1, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, - resolvers.drops{chance=100, nb=1, {defined=""} }, + resolvers.drops{chance=100, nb=1, {defined="CRYSTAL_FOCUS", random_art_replace={chance=75}} }, resolvers.drops{chance=100, nb=3, {ego_chance=100} }, resolvers.talents{ diff --git a/game/modules/tome/data/zones/scintillating-caves/objects.lua b/game/modules/tome/data/zones/scintillating-caves/objects.lua index 64f68bd7d938cac4db63631bd93520ef8524bff7..4e7b8c6c6405bb629806f2279b08ee9e45700cf7 100644 --- a/game/modules/tome/data/zones/scintillating-caves/objects.lua +++ b/game/modules/tome/data/zones/scintillating-caves/objects.lua @@ -18,14 +18,3 @@ -- darkgod@te4.org load("/data/general/objects/objects.lua") - -for i = 1, 5 do -newEntity{ base = "BASE_LORE", - define_as = "NOTE"..i, - name = "tattered paper scrap", lore="trollmire-note-"..i, - desc = [[A paper scrap, left by an adventurer.]], - rarity = false, - is_magic_device = false, - encumberance = 0, -} -end diff --git a/game/modules/tome/data/zones/scintillating-caves/zone.lua b/game/modules/tome/data/zones/scintillating-caves/zone.lua index d94e61e272b0595cc2d6d67d287ae8e06347e13e..d37aa5b81a4a17bdb69607a6c3e3929aadaf04aa 100644 --- a/game/modules/tome/data/zones/scintillating-caves/zone.lua +++ b/game/modules/tome/data/zones/scintillating-caves/zone.lua @@ -67,9 +67,9 @@ return { foreground = function(level, dx, dx, nb_keyframes) local tick = core.game.getTime() local sr, sg, sb - sr = (1 + math.sin(tick / 2000)) / 2 * 0.8 + 0.2 - sg = (1 + math.sin(tick / 2700)) / 2 * 0.7 + 0.3 - sb = (1 + math.sin(tick / 3200)) / 2 * 0.7 + 0.3 + sr = (1 + math.sin(tick / 2000)) / 2 * 0.4 + 0.8 + sg = (1 + math.sin(tick / 2700)) / 2 * 0.4 + 0.6 + sb = (1 + math.sin(tick / 3200)) / 2 * 0.4 + 0.6 level.map:setShown(sr, sg, sb, 1) level.map:setObscure(sr * 0.6, sg * 0.6, sb * 0.6, 1) end,