Index: data/resonance.lua ================================================================== --- data/resonance.lua +++ data/resonance.lua @@ -1,6 +1,6 @@ --- resonance is a mechanic whereby give which 'resonate' can be +-- resonance is a mechanic whereby items which 'resonate' can be -- transformed into each other by use of the divide/meld wands local function undersign(signs) return function(ctx) local stars = sorcery.calendar.stars(ctx.today); Index: data/runes.lua ================================================================== --- data/runes.lua +++ data/runes.lua @@ -2,10 +2,12 @@ -- applied to an amulet in order to imbue that amulet with unique -- and fearsome powers. the specific spell depends on the stone the -- rune is applied to, and not all runes can necessarily be applied -- to all stones. +-- TODO add blood ritual that adds an extra "charge" to an amulet + local L = sorcery.lib local sparkle_region = function(s) s.spell.visual_subjects { amount = s.amt, time = s.time, -- attached = s; minpos = s.minpos; @@ -664,12 +666,12 @@ end sorcery.spell.cast { name = 'sorcery:spellshatter'; caster = ctx.caster; anchor = epicenter; - --disjunction = true; - --range = radius; + disjunction = true; + range = radius; duration = 10; timeline = { [0] = function(s) s.visual_caster { texture = tex; @@ -1019,11 +1021,11 @@ tgt:set_hp(0) end; frame = { iridium = { name = 'Massacre'; - desc = "Unleash the dark and wicked force that lurks within this fell amulet to instantaneously slay all those who surround you, friend and foe alike"; + desc = "Unleash the dark and wicked force that lurks within this fell amulet to instantaneously slay all those who surround you — friend and foe alike"; }; }; }; }; }; Index: recipes.lua ================================================================== --- recipes.lua +++ recipes.lua @@ -797,10 +797,13 @@ recipe = { {'', pd[2], ''}; {pd[1],'basic_materials:paraffin', pd[3]}; {'', 'bucket:bucket_water', ''}; }; + replacements = { + {'bucket:bucket_water', 'bucket:bucket_empty'}; + }; } end end local potion_auto_recipe = function(id, substance, tools, container) Index: spell.lua ================================================================== --- spell.lua +++ spell.lua @@ -247,12 +247,12 @@ -- need to find a way to account for a caster or subject walking into an -- existing antimagic field, or someone with an existing antimagic aura -- walking into range of the anchor. so every time a spell effect would -- take place, we first check to see if it's in range of something nasty if not s.disjunction and -- avoid self-disjunction - (s.caster and sorcery.spell.probe(s.caster:get_pos()).disjunction) or - (s.anchor and sorcery.spell.probe(s.anchor,s.range).disjunction) then + ((s.caster and sorcery.spell.probe(s.caster:get_pos()).disjunction) or + (s.anchor and sorcery.spell.probe(s.anchor,s.range).disjunction)) then sorcery.spell.disjoin{spell=s} else if not s.disjunction then for _,sub in pairs(s.subjects) do local sp = sub.player:get_pos() if sorcery.spell.probe(sp).disjunction then Index: vfx.lua ================================================================== --- vfx.lua +++ vfx.lua @@ -208,67 +208,25 @@ 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 = 450;--50; - time = 2;--0.5; + amount = 50; + time = 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(); - - --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; + animation = { + type = 'vertical_frames'; + aspect_w = 16, aspect_h = 16; + length = 2.1; + }; + glow = 14; } end sorcery.vfx.bloodburst = function(pos,size) for i=0, size or 48 do