Index: data/runes.lua ================================================================== --- data/runes.lua +++ data/runes.lua @@ -128,10 +128,14 @@ name = 'Translocate'; tone = {0,235,233}; minpower = 2; rarity = 8; amulets = { + luxite = { + name = 'Banishment Aura'; + desc = 'Surround yourself with an aura that will banish those who get too close to you to the last place they slept'; + }; amethyst = { name = 'Joining'; desc = 'Give this amulet to another and with a snap of their fingers they can arrive safely at your side from anywhere in the world — though returning whence they came may be a more difficult matter'; apply = function(ctx) local maker = ctx.user:get_player_name() @@ -170,11 +174,11 @@ name = 'Exchange'; desc = 'Give this amulet to another and they will be able to trade places with you no matter where in the world each of you might be.'; }; cobalt = { name = 'Sending'; - desc = 'Give this amulet to another and by wielding this amulet against another they will be able to transport them instantly to your side'; + desc = 'Give this amulet to another and by wielding this amulet against another they will be able to transport their target instantly to your side'; }; iridium = { name = 'Arrival'; desc = "Give this amulet to another and they will be able to arrive at your side in a flash from anywhere in the world, carrying others with them in the spell's grip"; }; Index: vfx.lua ================================================================== --- vfx.lua +++ vfx.lua @@ -200,31 +200,75 @@ end sorcery.vfx.enchantment_sparkle = function(tgt,color) local minvel, maxvel if minetest.get_node(vector.add(tgt.under,{y=1,z=0,x=0})).name == 'air' then - minvel = {x=0,z=0,y= 0.3} maxvel = {x=0,z=0,y= 1.5}; + minvel = vector.new(-0.3,0.3,-0.3) maxvel = vector.new(0.6,1.5,0.6); else local dir = vector.subtract(tgt.above,tgt.under) minvel = vector.multiply(dir, 0.3) maxvel = vector.multiply(dir, 1.2) end + print(minetest.get_player_by_name('singleplayer')) return minetest.add_particlespawner { - amount = 50; - time = 0.5; + amount = 450;--50; + time = 2;--0.5; + -- old syntax minpos = vector.subtract(tgt.under, 0.5); maxpos = vector.add(tgt.under, 0.5); minvel = minvel, maxvel = maxvel; minexptime = 1, maxexptime = 2; minsize = 0.5, maxsize = 2; texture = L.image('sorcery_spark.png'):multiply(color):render(); - animation = { - type = 'vertical_frames'; - aspect_w = 16, aspect_h = 16; - length = 2; - }; - glow = 14; + + --new syntax + -- can't use this shit until it gets merged :( + -- pos = { + -- min = vector.subtract(tgt.under, 0.5); + -- max = vector.add(tgt.under, 0.5); + -- }; +-- pos = { +-- min = vector.subtract(tgt.under, 0.8); +-- max = vector.add (tgt.under, 0.8); +-- }; +-- vel_tween = { +-- {min = minvel, max = maxvel}; +-- {min = minvel * 3, max = maxvel * 3}; +-- }; +-- acc = { +-- min = vector.new(0,-2,0); +-- max = vector.new(0,-5,0); +-- }; +-- bounce = { min = 0.3, max = 2 }; +-- exptime = { min = 0.5, max = 10 }; +-- size = { min = 0.5, max = 1 }; +-- collisiondetection = true; +-- +-- texpool = { +-- { +-- img = L.image('sorcery_spark.png'):multiply(color):render(); +-- -- img = 'sorcery_inferno_crystal.png'; +-- alpha_tween = { 0.8, 1; style = 'pulse', reps = 4}; +-- -- scale = {x=4,y=0.5}; +-- scale_tween = { {x=2,y=3}; {x=0,y=0}; style = 'pulse', reps = 6 }; +-- }; +-- -- { +-- -- img = L.image('sorcery_divine_radiance_1.png'):multiply(L.color(255,0,0)):render(); +-- -- fade = 'pulse'; +-- -- fade_reps = 3; +-- -- }; +-- }; +-- radius = { +-- min = vector.new(0,0,0); +-- max = 0; +-- }; + -- animation = { + -- type = 'vertical_frames'; + -- aspect_w = 16, aspect_h = 16; + -- length = -1; + -- }; + -- glow = 14; } end sorcery.vfx.bloodburst = function(pos,size) for i=0, size or 48 do @@ -272,11 +316,11 @@ local vel = math.random() * 0.8 + 0.4 local col if type(color) == 'function' then col = color(i, {high = high, far = far, dir = dir, vel = vel, pos = po}) else col = color end - local et = math.floor((far/vel)*10)*.1 + local et = math.floor((far/vel)*10)*.1 -- avoid freeze minetest.add_particle { pos = ppos; velocity = vector.multiply(dir,vel); expirationtime = 0.4; size = math.random()*2.4 + 0.6;