Index: data/runes.lua ================================================================== --- data/runes.lua +++ data/runes.lua @@ -2,10 +2,11 @@ -- 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. +local L = sorcery.lib local sparkle_region = function(s) s.spell.visual_subjects { amount = s.amt, time = s.time, -- attached = s; minpos = s.minpos; maxpos = s.maxpos; @@ -124,12 +125,12 @@ return { translocate = { name = 'Translocate'; tone = {0,235,233}; - minpower = 3; - rarity = 7; + minpower = 2; + rarity = 8; amulets = { 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) @@ -410,15 +411,16 @@ }; disjoin = { name = 'Disjoin'; tone = {159,235,0}; minpower = 4; - rarity = 34; + rarity = 10; amulets = { sapphire = { name = 'Unsealing'; desc = 'Wielding this amulet, a touch of your hand will unravel even the mightiest protective magics, leaving doors unsealed and walls free to tear down'; + sound = 'sorcery_disjoin'; cast = function(ctx) if ctx.target.type ~= 'node' then return false end local r = 2 + math.floor(ctx.stats.power / 2) local cast = false for x = -r,r do @@ -444,20 +446,23 @@ end; }; amethyst = { name = 'Purging'; desc = 'Free yourself from the grip of any malicious spellwork with a snap of your fingers — interrupting all of your own active spells in the process, including impending translocations'; + sound = 'sorcery_disjoin'; cast = function(ctx) purge(ctx.caster) end; }; emerald = { name = 'Disjunction Field'; desc = 'Render an area totally opaque to spellwork for a period of time, disrupting any existing spells and preventing further spellcasting therein'; + sound = 'sorcery_disjoin'; }; ruby = { name = 'Disjunction'; desc = 'Wield this amulet against a spellcaster to disrupt and abort all their spells in progress, perhaps to trap a foe intent on translocating away, or unleash its force upon the victim of a malign hex to free them from its clutches'; mingrade = 3; + sound = 'sorcery_disjoin'; cast = function(ctx) if ctx.target.type == 'object' then purge(ctx.target.ref) else return false end @@ -471,10 +476,11 @@ }; }; luxite = { name = 'Disjunctive Aura'; desc = 'For a time, all magic undertaken in your vicinity will fail totally — including your own'; + sound = 'sorcery_disjoin'; cast = function(ctx) local h = ctx.heading.eyeheight*1.1 sorcery.spell.cast { name = 'sorcery:disjunctive-aura'; caster = ctx.caster, attach = 'caster'; @@ -512,11 +518,11 @@ img = sorcery.lib.image('sorcery_flicker.png'):glow(sorcery.lib.color(120,255,30)); } end; }; sounds = { - [0.00] = {sound='sorcery_disjoin', where='caster'}; + -- [0.00] = {sound='sorcery_disjoin', where='caster'}; [{whence=0,secs=0.8}] = { sound='sorcery_disjoin_bg', where='subjects'; gain=0.5, stop = {whence=1,secs=-1.5} }; [1.00] = {sound='sorcery_powerdown', where='caster'}; @@ -525,10 +531,11 @@ end }; diamond = { name = 'Mundanity'; desc = 'Strip away the effects of all active potions and spells in your immediate vicinity, leaving adversaries without their magicks to enhance and protect them, and allies free of any curses they may be hobbled by -- and, of course, vice versa'; + sound = 'sorcery_disjoin'; cast = function(ctx) local where = ctx.caster:get_pos() local what = minetest.get_objects_inside_radius(where, 3 + (2*ctx.stats.power)) local who = {} local pfac = math.min(1, ctx.stats.power/8) @@ -625,10 +632,11 @@ end; frame = { iridium = { name = 'Spellshatter'; desc = 'Blast out a tidal wave of anti-magic that will nullify active spells, but also disenchant or destroy all magical items in range of its violently mundane grip'; + sound = 'sorcery_disjoin'; cast = function(ctx) local where = ctx.caster:get_pos() local radius = 3 + (2*ctx.stats.power) local what = minetest.get_objects_inside_radius(where, radius) local who = {} @@ -687,10 +695,16 @@ type = 'vertical_frames', length = (21/6) + 0.1; aspect_w = 16, aspect_h = 16; } } end; + }; + sounds = { + [{whence=0,secs=0.8}] = { + sound='sorcery_disjoin_bg', where=where; + gain=0.5, stop = {whence=1,secs=-0.6} + }; }; intervals = { {period = 0.1, after = 0.15, fn = function(c) for i = 1,80 do local life = 0.2 + math.random() * 2 @@ -711,11 +725,11 @@ end if next(wreck) then local k,p = sorcery.lib.tbl.pick(wreck) minetest.add_particle { - texture = sorcery.lib.image('sorcery_sparking.png'):glow(sorcery.lib.color(255,0,0)):render(); + texture = L.image('sorcery_sparking.png'):glow(L.color(0,255,0)):render(); pos = vector.offset(p,math.random(),math.random(),math.random()); expirationtime = 1; size = 5 + math.random() * 4; glow = 14; animation = { @@ -722,20 +736,63 @@ type = 'vertical_frames', length = 0.3; aspect_w = 64, aspect_h = 64; } } minetest.add_particle { - texture = sorcery.lib.image('sorcery_crackle.png'):glow(sorcery.lib.color(255,0,0)):render(); + texture = L.image('sorcery_crackle.png'):glow(L.color(0,255,0)):render(); pos = vector.offset(p,math.random(),math.random(),math.random()); expirationtime = 1; size = 4 + math.random() * 6; glow = 14; animation = { - type = 'vertical_frames', length = 0.6; + type = 'vertical_frames', length = 1.1; aspect_w = 64, aspect_h = 64; } } + if math.random(1,7) == 1 then + minetest.sound_play('sorcery_' .. (math.random(1,2)==1 and 'rip' or 'crunch'), { + pos = p; + gain = math.random(5,13)*0.1; + }, true) + minetest.after(0.2, function() minetest.remove_node(p) end) + sorcery.vfx.show { + amount = 120, time = 0.3; + kind = 'flicker', color = L.color(80,255,10);--(255,12,0); + pos = p, radius = 0.4; + velrange = 1, accrange = vector.new(0.0,0.2,0.0); + minsize = 5, maxsize = 20; + life = 0.6, varylife = 0.1; + } + sorcery.vfx.show { + amount = 80, time = 0.2; + minsize = 0.1, maxsize = 0.8; + pos = p, radius = 0.6; + node = minetest.get_node(p); + vel = vector.new(0,7,0); + velrange = vector.new(2, 4, 2); + acc = vector.new(0,-9,0); + life = 3, varylife = 0.4; + } + -- minetest.add_particlespawner { + -- amount = 60, time = 0.2; + -- texture = L.image('sorcery_flicker.png'):glow():render(); + -- minpos = vector.offset(p, -0.5, -0.5, -0.5); + -- maxpos = vector.offset(p, 0.5, 0.5, 0.5); + -- minacc = vector.new(0.0, -0.2, 0.0); + -- maxacc = vector.new(0.0, 0.2, 0.0); + -- minvel = vector.new(-1,-1,-1); + -- maxvel = vector.new(1,1,1); + -- minsize = 0.5, maxsize = 4; + -- minexptime = 0.6, maxexptime = 0.7; + -- animation = { + -- type = 'vertical_frames'; + -- aspect_w = 16, aspect_h = 16; + -- length = 0.8; + -- } + -- } + table.remove(wreck,k) + end end end}; }; } end; @@ -746,11 +803,11 @@ }; repulse = { name = 'Repulse'; tone = {0,180,235}; minpower = 1; - rarity = 5; + rarity = 7; amulets = { amethyst = { name = 'Hurling'; desc = 'Wielding this amulet, a mere flick of your fingers will lift any target of your choice bodily into the air and press upon them with tremendous repulsive force, throwing them like a hapless ragdoll out of your path'; cast = function(ctx) @@ -759,12 +816,15 @@ local line = vector.subtract(ctx.caster:get_pos(), tgt:get_pos()) -- direction vector from target to caster local dir,mag = sorcery.lib.math.vsep(line) if mag > 6 then return false end -- no cheating! local force = 20 + (ctx.stats.power * 2.5) - minetest.sound_play('sorcery_hurl',{pos=tgt:get_pos()},true) - local immortal = tgt:get_luaentity():get_armor_groups().immortal or 0 + minetest.sound_play('sorcery_slide',{pos=tgt:get_pos()},true) + local immortal = 0 + -- if tgt and tgt.get_armor_groups then + immortal = tgt:get_armor_groups().immortal or 0 + -- end if minetest.is_player(tgt) or immortal == 0 then tgt:punch(ctx.caster, 1, { full_punch_interval = 1; damage_groups = { fleshy = force / 10 }; }) @@ -800,11 +860,11 @@ s.affect { duration = power * 0.50; raise = 0.5; -- fall = (power * 0.25) * 0.3; impacts = { - gravity = 0.1; + gravity = 0.2; }; } end; }; intervals = { @@ -866,11 +926,11 @@ end end or nil; }; sounds = { [0.3] = { - sound = 'sorcery_hurl'; + sound = 'sorcery_slide'; where = 'subjects'; ephemeral = true; }; [1] = (ctx.amulet.frame == 'cobalt') and { sound = 'sorcery_hurl'; @@ -906,12 +966,12 @@ }; }; obliterate = { name = 'Obliterate'; tone = {255,0,10}; - minpower = 5; - rarity = 30; + minpower = 4; + rarity = 10; amulets = { amethyst = { name = 'Sapping'; desc = 'Punch a hole in enemy fortifications big enough to slip through but small enough to avoid immediate attention'; }; @@ -965,12 +1025,12 @@ }; }; excavate = { name = 'Excavate'; tone = {0,68,235}; - minpower = 3; - rarity = 17; + minpower = 2; + rarity = 9; amulets = { luxite = { name = 'Stonestride'; desc = 'Rock walls will open up before you when you brandish this amulet before them, closing up again behind you without leaving a trace of your passage'; }; @@ -1093,12 +1153,12 @@ }; }; genesis = { name = 'Genesis'; tone = {235,0,175}; - minpower = 5; - rarity = 23; + minpower = 3; + rarity = 12; amulets = { amethyst = { name = 'Shelter'; desc = 'Pour the power of this amulet into the soil or sand and out will grow a warm and well-lit place of shelter, no matter how far you may be from civilization.'; cast = function(ctx) @@ -1712,12 +1772,12 @@ }; }; dominate = { name = 'Dominate'; tone = {235,0,228}; - minpower = 4; - rarity = 13; + minpower = 3; + rarity = 12; amulets = { amethyst = { name = 'Suffocation'; desc = 'Wrap this spell tightly around your victim\'s throat, cutting off their oxygen until you release them.'; }; Index: gems.lua ================================================================== --- gems.lua +++ gems.lua @@ -89,23 +89,23 @@ pitch = user:get_look_vertical(); angle = user:get_look_horizontal(); eyeheight = user:get_properties().eye_height; }; - sound = "xdecor_enchanting"; --FIXME make own sounds + sound = sp.sound or "xdecor_enchanting"; --FIXME make own sounds sparkle = true; } local res = sp.cast(ctx) - if res == nil or res == true then + if res == nil or res == true and ctx.sound then minetest.sound_play(ctx.sound, { pos = user:get_pos(); gain = 1; }) end if ctx.sparkle then - sorcery.vfx.cast_sparkle(user, ctx.color, stats.power,0.5) + sorcery.vfx.cast_sparkle(user, ctx.color, stats.power,0.2) end local infinirune = minetest.check_player_privs(user, 'sorcery:infinirune') if res == nil then if not infinirune then sorcery.amulet.setrune(usedamulet) end end @@ -166,10 +166,19 @@ {disc}; -- {'', frag,''}; -- {frag,amuletname,frag}; -- {'', frag,''}; }; + } + minetest.register_craft { + output = amuletname; + type = 'shapeless'; + recipe = { framedid, 'xdecor:hammer'; }; + replacements = { + {'xdecor:hammer', 'xdecor:hammer'}; + {framedid, disc}; + }; } end) end minetest.register_craft { type = 'shapeless'; Index: runeforge.lua ================================================================== --- runeforge.lua +++ runeforge.lua @@ -4,11 +4,11 @@ -- i think amulets are a little overpowered for something that just -- passively consumes ley-current -- -- are phials & rune-wrenches enough for this now? local constants = { - rune_mine_interval = 240; + rune_mine_interval = 180; -- how often a powered forge rolls for new runes rune_cache_max = 6; -- how many runes a runeforge can hold at a time @@ -42,11 +42,11 @@ local calc_phial_props = function(phial) --> mine interval: float, power factor: float local m = phial:get_meta() local g = phial:get_definition()._proto.data.grade local i = constants.rune_mine_interval local fac = (g-1) / 5 - fac = fac + 0.2 * m:get_int('speed') + fac = fac + 0.1 * m:get_int('speed') return math.max(3,i - ((i*0.5) * fac)), 0.5 * fac end sorcery.register.runes.foreach('sorcery:generate',{},function(name,rune) local id = 'sorcery:rune_' .. name rune.image = rune.image or string.format('sorcery_rune_%s.png',name) @@ -228,11 +228,11 @@ local rune = m:get_string('amulet_rune') local rg = m:get_int('amulet_rune_grade') local rd = sorcery.data.runes[rune] local spell = rd.amulets[proto.base] if not spell then return nil end - local title,desc,cast,apply,remove,mingrade = spell.name, spell.desc, spell.cast, spell.apply, spell.remove, spell.mingrade -- FIXME in serious need of refactoring + local title,desc,cast,apply,remove,mingrade,sound = spell.name, spell.desc, spell.cast, spell.apply, spell.remove, spell.mingrade,spell.sound -- FIXME in serious need of refactoring local base_spell = true if proto.frame and spell.frame and spell.frame[proto.frame] then local sp = spell.frame[proto.frame] if not sp.mingrade or rg >= sp.mingrade then @@ -240,18 +240,20 @@ desc = sp.desc or desc cast = sp.cast or cast apply = sp.apply or apply remove = sp.remove or remove mingrade = sp.mingrade or mingrade + sound = sp.sound or sound base_spell = false end end + -- PLEASE, GOD, REFACTOR ME return { rune = rune, grade = rg; spell = spell, mingrade = mingrade; - name = title, desc = desc; + name = title, desc = desc, sound = sound; cast = cast, apply = apply, remove = remove; frame = proto.frame; framestats = proto.frame and sorcery.data.metals[proto.frame].amulet; tone = sorcery.lib.color(rd.tone); base_spell = base_spell; @@ -273,29 +275,35 @@ local int, powerfac = calc_phial_props(phial) local pf = phial:get_meta():get_int('force') local rolls = math.floor(time/int) local newrunes = {} for _=1,rolls do + print('--- rune roll',_,'pf',pf) local choices = {} for name,rune in pairs(sorcery.data.runes) do - -- print('considering',name) - -- print('-- power',rune.minpower,(rune.minpower*powerfac)*time,'//',l.self.powerdraw,l.self.powerdraw/time,'free',l.freepower,'max',l.maxpower) - if (rune.minpower*powerfac)*time <= l.self.powerdraw and math.random(rune.rarity - pf) == 1 then + local powreq = (rune.minpower*powerfac)*time + print('- rune', name) + print('powreq',powreq) + print('power draw',l.self.powerdraw) + if powreq <= l.self.powerdraw then + print(' ! sufficient power for rune') choices[#choices + 1] = rune end end + for k,v in pairs(choices) do print(' * choice',k,v.item) end if #choices > 0 then - -- if multiple runes were rolled up, be nice to the player - -- and pick the rarest one to give them - local rare, choice = 0 - for i,c in pairs(choices) do - if c.rarity > rare then - rare = c.rarity - choice = c + for try = 1,#choices do + print(' -- try',try) + local _, choice = sorcery.lib.tbl.pick(choices) + local adjrare = math.max(2, choice.rarity - pf) + print(choice.item,'rarity',choice.rarity, 'adjusted', adjrare) + if math.random(adjrare) == 1 then + print(' ! picking ', choice.item) + newrunes[#newrunes + 1] = ItemStack(choice.item) + break end end - newrunes[#newrunes + 1] = ItemStack(choice.item) end -- print('rune choices:',dump(choices)) -- print('me',dump(l.self)) end @@ -422,11 +430,11 @@ i:set_size('wrench',1) i:set_size('phial',1) i:set_size('refuse',1) i:set_size('amulet',1) i:set_size('active',1) m:set_string('infotext','Rune Forge') runeforge_update(pos) end; - after_dig_node = sorcery.lib.node.purge_only {'amulet','wrench'}; + after_dig_node = sorcery.lib.node.purge_only {'amulet','wrench','refuse','phial'}; on_timer = runeforge_update; on_metadata_inventory_move = function(pos, fl,fi, tl,ti, count, user) local inv = minetest.get_meta(pos):get_inventory() local wrench if not inv:is_empty('wrench') then wrench = inv:get_stack('wrench',1):get_definition()._proto Index: textures/sorcery_aether_coruscator.png ================================================================== --- textures/sorcery_aether_coruscator.png +++ textures/sorcery_aether_coruscator.png cannot compute difference between binary files Index: textures/sorcery_aetherial_harmonizer.png ================================================================== --- textures/sorcery_aetherial_harmonizer.png +++ textures/sorcery_aetherial_harmonizer.png cannot compute difference between binary files Index: textures/sorcery_aluminum_fragment.png ================================================================== --- textures/sorcery_aluminum_fragment.png +++ textures/sorcery_aluminum_fragment.png cannot compute difference between binary files Index: textures/sorcery_aluminum_ore.png ================================================================== --- textures/sorcery_aluminum_ore.png +++ textures/sorcery_aluminum_ore.png cannot compute difference between binary files Index: textures/sorcery_aluminum_pick.png ================================================================== --- textures/sorcery_aluminum_pick.png +++ textures/sorcery_aluminum_pick.png cannot compute difference between binary files Index: textures/sorcery_aluminum_powder.png ================================================================== --- textures/sorcery_aluminum_powder.png +++ textures/sorcery_aluminum_powder.png cannot compute difference between binary files Index: textures/sorcery_aluminum_sword.png ================================================================== --- textures/sorcery_aluminum_sword.png +++ textures/sorcery_aluminum_sword.png cannot compute difference between binary files Index: textures/sorcery_amulet.png ================================================================== --- textures/sorcery_amulet.png +++ textures/sorcery_amulet.png cannot compute difference between binary files Index: textures/sorcery_amulet_frame_cobalt.png ================================================================== --- textures/sorcery_amulet_frame_cobalt.png +++ textures/sorcery_amulet_frame_cobalt.png cannot compute difference between binary files Index: textures/sorcery_amulet_frame_gold.png ================================================================== --- textures/sorcery_amulet_frame_gold.png +++ textures/sorcery_amulet_frame_gold.png cannot compute difference between binary files Index: textures/sorcery_amulet_frame_iridium.png ================================================================== --- textures/sorcery_amulet_frame_iridium.png +++ textures/sorcery_amulet_frame_iridium.png cannot compute difference between binary files Index: textures/sorcery_amulet_frame_tungsten.png ================================================================== --- textures/sorcery_amulet_frame_tungsten.png +++ textures/sorcery_amulet_frame_tungsten.png cannot compute difference between binary files Index: textures/sorcery_amulet_sparkle.png ================================================================== --- textures/sorcery_amulet_sparkle.png +++ textures/sorcery_amulet_sparkle.png cannot compute difference between binary files Index: textures/sorcery_beam_generator.png ================================================================== --- textures/sorcery_beam_generator.png +++ textures/sorcery_beam_generator.png cannot compute difference between binary files Index: textures/sorcery_blood_1.png ================================================================== --- textures/sorcery_blood_1.png +++ textures/sorcery_blood_1.png cannot compute difference between binary files Index: textures/sorcery_blood_2.png ================================================================== --- textures/sorcery_blood_2.png +++ textures/sorcery_blood_2.png cannot compute difference between binary files Index: textures/sorcery_blood_3.png ================================================================== --- textures/sorcery_blood_3.png +++ textures/sorcery_blood_3.png cannot compute difference between binary files Index: textures/sorcery_blood_4.png ================================================================== --- textures/sorcery_blood_4.png +++ textures/sorcery_blood_4.png cannot compute difference between binary files Index: textures/sorcery_blood_5.png ================================================================== --- textures/sorcery_blood_5.png +++ textures/sorcery_blood_5.png cannot compute difference between binary files Index: textures/sorcery_brass_fragment.png ================================================================== --- textures/sorcery_brass_fragment.png +++ textures/sorcery_brass_fragment.png cannot compute difference between binary files Index: textures/sorcery_brass_powder.png ================================================================== --- textures/sorcery_brass_powder.png +++ textures/sorcery_brass_powder.png cannot compute difference between binary files Index: textures/sorcery_bronze_fragment.png ================================================================== --- textures/sorcery_bronze_fragment.png +++ textures/sorcery_bronze_fragment.png cannot compute difference between binary files Index: textures/sorcery_bronze_powder.png ================================================================== --- textures/sorcery_bronze_powder.png +++ textures/sorcery_bronze_powder.png cannot compute difference between binary files Index: textures/sorcery_candle.png ================================================================== --- textures/sorcery_candle.png +++ textures/sorcery_candle.png cannot compute difference between binary files Index: textures/sorcery_catalytic_convector.png ================================================================== --- textures/sorcery_catalytic_convector.png +++ textures/sorcery_catalytic_convector.png cannot compute difference between binary files Index: textures/sorcery_cobalt_fragment.png ================================================================== --- textures/sorcery_cobalt_fragment.png +++ textures/sorcery_cobalt_fragment.png cannot compute difference between binary files Index: textures/sorcery_cobalt_ore.png ================================================================== --- textures/sorcery_cobalt_ore.png +++ textures/sorcery_cobalt_ore.png cannot compute difference between binary files Index: textures/sorcery_cobalt_pick.png ================================================================== --- textures/sorcery_cobalt_pick.png +++ textures/sorcery_cobalt_pick.png cannot compute difference between binary files Index: textures/sorcery_cobalt_powder.png ================================================================== --- textures/sorcery_cobalt_powder.png +++ textures/sorcery_cobalt_powder.png cannot compute difference between binary files Index: textures/sorcery_cobalt_sword.png ================================================================== --- textures/sorcery_cobalt_sword.png +++ textures/sorcery_cobalt_sword.png cannot compute difference between binary files Index: textures/sorcery_cobalt_wire.png ================================================================== --- textures/sorcery_cobalt_wire.png +++ textures/sorcery_cobalt_wire.png cannot compute difference between binary files Index: textures/sorcery_coin.png ================================================================== --- textures/sorcery_coin.png +++ textures/sorcery_coin.png cannot compute difference between binary files Index: textures/sorcery_coin_gem.png ================================================================== --- textures/sorcery_coin_gem.png +++ textures/sorcery_coin_gem.png cannot compute difference between binary files Index: textures/sorcery_condenser.png ================================================================== --- textures/sorcery_condenser.png +++ textures/sorcery_condenser.png cannot compute difference between binary files Index: textures/sorcery_conduction_plate.png ================================================================== --- textures/sorcery_conduction_plate.png +++ textures/sorcery_conduction_plate.png cannot compute difference between binary files Index: textures/sorcery_conduit_copper_side.png ================================================================== --- textures/sorcery_conduit_copper_side.png +++ textures/sorcery_conduit_copper_side.png cannot compute difference between binary files Index: textures/sorcery_conduit_copper_top.png ================================================================== --- textures/sorcery_conduit_copper_top.png +++ textures/sorcery_conduit_copper_top.png cannot compute difference between binary files Index: textures/sorcery_copper_fragment.png ================================================================== --- textures/sorcery_copper_fragment.png +++ textures/sorcery_copper_fragment.png cannot compute difference between binary files Index: textures/sorcery_copper_powder.png ================================================================== --- textures/sorcery_copper_powder.png +++ textures/sorcery_copper_powder.png cannot compute difference between binary files Index: textures/sorcery_core_counterpraxic.png ================================================================== --- textures/sorcery_core_counterpraxic.png +++ textures/sorcery_core_counterpraxic.png cannot compute difference between binary files Index: textures/sorcery_core_mandatic.png ================================================================== --- textures/sorcery_core_mandatic.png +++ textures/sorcery_core_mandatic.png cannot compute difference between binary files Index: textures/sorcery_core_syncretic.png ================================================================== --- textures/sorcery_core_syncretic.png +++ textures/sorcery_core_syncretic.png cannot compute difference between binary files Index: textures/sorcery_crackle.png ================================================================== --- textures/sorcery_crackle.png +++ textures/sorcery_crackle.png cannot compute difference between binary files Index: textures/sorcery_crucible_aluminum.png ================================================================== --- textures/sorcery_crucible_aluminum.png +++ textures/sorcery_crucible_aluminum.png cannot compute difference between binary files Index: textures/sorcery_crucible_clay.png ================================================================== --- textures/sorcery_crucible_clay.png +++ textures/sorcery_crucible_clay.png cannot compute difference between binary files Index: textures/sorcery_crucible_clay_molding.png ================================================================== --- textures/sorcery_crucible_clay_molding.png +++ textures/sorcery_crucible_clay_molding.png cannot compute difference between binary files Index: textures/sorcery_crucible_duridium.png ================================================================== --- textures/sorcery_crucible_duridium.png +++ textures/sorcery_crucible_duridium.png cannot compute difference between binary files Index: textures/sorcery_crucible_platinum.png ================================================================== --- textures/sorcery_crucible_platinum.png +++ textures/sorcery_crucible_platinum.png cannot compute difference between binary files Index: textures/sorcery_current_felicitator.png ================================================================== --- textures/sorcery_current_felicitator.png +++ textures/sorcery_current_felicitator.png cannot compute difference between binary files Index: textures/sorcery_dagger.png ================================================================== --- textures/sorcery_dagger.png +++ textures/sorcery_dagger.png cannot compute difference between binary files Index: textures/sorcery_dagger_glow.png ================================================================== --- textures/sorcery_dagger_glow.png +++ textures/sorcery_dagger_glow.png cannot compute difference between binary files Index: textures/sorcery_diamond_outline.png ================================================================== --- textures/sorcery_diamond_outline.png +++ textures/sorcery_diamond_outline.png cannot compute difference between binary files Index: textures/sorcery_disc.png ================================================================== --- textures/sorcery_disc.png +++ textures/sorcery_disc.png cannot compute difference between binary files Index: textures/sorcery_disc_impervium.png ================================================================== --- textures/sorcery_disc_impervium.png +++ textures/sorcery_disc_impervium.png cannot compute difference between binary files Index: textures/sorcery_disc_steel.png ================================================================== --- textures/sorcery_disc_steel.png +++ textures/sorcery_disc_steel.png cannot compute difference between binary files Index: textures/sorcery_displacer_front.png ================================================================== --- textures/sorcery_displacer_front.png +++ textures/sorcery_displacer_front.png cannot compute difference between binary files Index: textures/sorcery_displacer_module_receive.png ================================================================== --- textures/sorcery_displacer_module_receive.png +++ textures/sorcery_displacer_module_receive.png cannot compute difference between binary files Index: textures/sorcery_displacer_module_transmit.png ================================================================== --- textures/sorcery_displacer_module_transmit.png +++ textures/sorcery_displacer_module_transmit.png cannot compute difference between binary files Index: textures/sorcery_displacer_side.png ================================================================== --- textures/sorcery_displacer_side.png +++ textures/sorcery_displacer_side.png cannot compute difference between binary files Index: textures/sorcery_displacer_top.png ================================================================== --- textures/sorcery_displacer_top.png +++ textures/sorcery_displacer_top.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_1.png ================================================================== --- textures/sorcery_divine_radiance_1.png +++ textures/sorcery_divine_radiance_1.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_2.png ================================================================== --- textures/sorcery_divine_radiance_2.png +++ textures/sorcery_divine_radiance_2.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_3.png ================================================================== --- textures/sorcery_divine_radiance_3.png +++ textures/sorcery_divine_radiance_3.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_4.png ================================================================== --- textures/sorcery_divine_radiance_4.png +++ textures/sorcery_divine_radiance_4.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_5.png ================================================================== --- textures/sorcery_divine_radiance_5.png +++ textures/sorcery_divine_radiance_5.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_6.png ================================================================== --- textures/sorcery_divine_radiance_6.png +++ textures/sorcery_divine_radiance_6.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_7.png ================================================================== --- textures/sorcery_divine_radiance_7.png +++ textures/sorcery_divine_radiance_7.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_8.png ================================================================== --- textures/sorcery_divine_radiance_8.png +++ textures/sorcery_divine_radiance_8.png cannot compute difference between binary files Index: textures/sorcery_divine_radiance_9.png ================================================================== --- textures/sorcery_divine_radiance_9.png +++ textures/sorcery_divine_radiance_9.png cannot compute difference between binary files Index: textures/sorcery_draconium_fragment.png ================================================================== --- textures/sorcery_draconium_fragment.png +++ textures/sorcery_draconium_fragment.png cannot compute difference between binary files Index: textures/sorcery_draconium_pick.png ================================================================== --- textures/sorcery_draconium_pick.png +++ textures/sorcery_draconium_pick.png cannot compute difference between binary files Index: textures/sorcery_draconium_powder.png ================================================================== --- textures/sorcery_draconium_powder.png +++ textures/sorcery_draconium_powder.png cannot compute difference between binary files Index: textures/sorcery_draconium_sword.png ================================================================== --- textures/sorcery_draconium_sword.png +++ textures/sorcery_draconium_sword.png cannot compute difference between binary files Index: textures/sorcery_drop.png ================================================================== --- textures/sorcery_drop.png +++ textures/sorcery_drop.png cannot compute difference between binary files Index: textures/sorcery_droplet.png ================================================================== --- textures/sorcery_droplet.png +++ textures/sorcery_droplet.png cannot compute difference between binary files Index: textures/sorcery_duranium_fragment.png ================================================================== --- textures/sorcery_duranium_fragment.png +++ textures/sorcery_duranium_fragment.png cannot compute difference between binary files Index: textures/sorcery_duridium_fragment.png ================================================================== --- textures/sorcery_duridium_fragment.png +++ textures/sorcery_duridium_fragment.png cannot compute difference between binary files Index: textures/sorcery_duridium_pick.png ================================================================== --- textures/sorcery_duridium_pick.png +++ textures/sorcery_duridium_pick.png cannot compute difference between binary files Index: textures/sorcery_duridium_powder.png ================================================================== --- textures/sorcery_duridium_powder.png +++ textures/sorcery_duridium_powder.png cannot compute difference between binary files Index: textures/sorcery_duridium_sword.png ================================================================== --- textures/sorcery_duridium_sword.png +++ textures/sorcery_duridium_sword.png cannot compute difference between binary files Index: textures/sorcery_electrum_fragment.png ================================================================== --- textures/sorcery_electrum_fragment.png +++ textures/sorcery_electrum_fragment.png cannot compute difference between binary files Index: textures/sorcery_electrum_powder.png ================================================================== --- textures/sorcery_electrum_powder.png +++ textures/sorcery_electrum_powder.png cannot compute difference between binary files Index: textures/sorcery_emitter_barrier_bottom.png ================================================================== --- textures/sorcery_emitter_barrier_bottom.png +++ textures/sorcery_emitter_barrier_bottom.png cannot compute difference between binary files Index: textures/sorcery_emitter_barrier_front.png ================================================================== --- textures/sorcery_emitter_barrier_front.png +++ textures/sorcery_emitter_barrier_front.png cannot compute difference between binary files Index: textures/sorcery_emitter_barrier_side.png ================================================================== --- textures/sorcery_emitter_barrier_side.png +++ textures/sorcery_emitter_barrier_side.png cannot compute difference between binary files Index: textures/sorcery_emitter_barrier_top.png ================================================================== --- textures/sorcery_emitter_barrier_top.png +++ textures/sorcery_emitter_barrier_top.png cannot compute difference between binary files Index: textures/sorcery_enchant_conserve.png ================================================================== --- textures/sorcery_enchant_conserve.png +++ textures/sorcery_enchant_conserve.png cannot compute difference between binary files Index: textures/sorcery_enchant_dowse.png ================================================================== --- textures/sorcery_enchant_dowse.png +++ textures/sorcery_enchant_dowse.png cannot compute difference between binary files Index: textures/sorcery_enchant_endure.png ================================================================== --- textures/sorcery_enchant_endure.png +++ textures/sorcery_enchant_endure.png cannot compute difference between binary files Index: textures/sorcery_enchant_glimmer.png ================================================================== --- textures/sorcery_enchant_glimmer.png +++ textures/sorcery_enchant_glimmer.png cannot compute difference between binary files Index: textures/sorcery_enchant_glitter.png ================================================================== --- textures/sorcery_enchant_glitter.png +++ textures/sorcery_enchant_glitter.png cannot compute difference between binary files Index: textures/sorcery_enchant_harvest.png ================================================================== --- textures/sorcery_enchant_harvest.png +++ textures/sorcery_enchant_harvest.png cannot compute difference between binary files Index: textures/sorcery_enchant_pierce.png ================================================================== --- textures/sorcery_enchant_pierce.png +++ textures/sorcery_enchant_pierce.png cannot compute difference between binary files Index: textures/sorcery_enchant_rend.png ================================================================== --- textures/sorcery_enchant_rend.png +++ textures/sorcery_enchant_rend.png cannot compute difference between binary files Index: textures/sorcery_enchanter_bg.png ================================================================== --- textures/sorcery_enchanter_bg.png +++ textures/sorcery_enchanter_bg.png cannot compute difference between binary files Index: textures/sorcery_enchanter_channeler.png ================================================================== --- textures/sorcery_enchanter_channeler.png +++ textures/sorcery_enchanter_channeler.png cannot compute difference between binary files Index: textures/sorcery_enchanter_glyphs.png ================================================================== --- textures/sorcery_enchanter_glyphs.png +++ textures/sorcery_enchanter_glyphs.png cannot compute difference between binary files Index: textures/sorcery_enchanter_pedestal.png ================================================================== --- textures/sorcery_enchanter_pedestal.png +++ textures/sorcery_enchanter_pedestal.png cannot compute difference between binary files Index: textures/sorcery_enchanter_ui.png ================================================================== --- textures/sorcery_enchanter_ui.png +++ textures/sorcery_enchanter_ui.png cannot compute difference between binary files Index: textures/sorcery_erasure_fluid_bottle.png ================================================================== --- textures/sorcery_erasure_fluid_bottle.png +++ textures/sorcery_erasure_fluid_bottle.png cannot compute difference between binary files Index: textures/sorcery_essence_flame.png ================================================================== --- textures/sorcery_essence_flame.png +++ textures/sorcery_essence_flame.png cannot compute difference between binary files Index: textures/sorcery_essence_force.png ================================================================== --- textures/sorcery_essence_force.png +++ textures/sorcery_essence_force.png cannot compute difference between binary files Index: textures/sorcery_essence_frost.png ================================================================== --- textures/sorcery_essence_frost.png +++ textures/sorcery_essence_frost.png cannot compute difference between binary files Index: textures/sorcery_eternium_fragment.png ================================================================== --- textures/sorcery_eternium_fragment.png +++ textures/sorcery_eternium_fragment.png cannot compute difference between binary files Index: textures/sorcery_eternium_pick.png ================================================================== --- textures/sorcery_eternium_pick.png +++ textures/sorcery_eternium_pick.png cannot compute difference between binary files Index: textures/sorcery_eternium_powder.png ================================================================== --- textures/sorcery_eternium_powder.png +++ textures/sorcery_eternium_powder.png cannot compute difference between binary files Index: textures/sorcery_farcaster_linear_bottom.png ================================================================== --- textures/sorcery_farcaster_linear_bottom.png +++ textures/sorcery_farcaster_linear_bottom.png cannot compute difference between binary files Index: textures/sorcery_farcaster_linear_side.png ================================================================== --- textures/sorcery_farcaster_linear_side.png +++ textures/sorcery_farcaster_linear_side.png cannot compute difference between binary files Index: textures/sorcery_farcaster_linear_top.png ================================================================== --- textures/sorcery_farcaster_linear_top.png +++ textures/sorcery_farcaster_linear_top.png cannot compute difference between binary files Index: textures/sorcery_farcaster_nonlocal_back.png ================================================================== --- textures/sorcery_farcaster_nonlocal_back.png +++ textures/sorcery_farcaster_nonlocal_back.png cannot compute difference between binary files Index: textures/sorcery_farcaster_nonlocal_front.png ================================================================== --- textures/sorcery_farcaster_nonlocal_front.png +++ textures/sorcery_farcaster_nonlocal_front.png cannot compute difference between binary files Index: textures/sorcery_farcaster_nonlocal_side.png ================================================================== --- textures/sorcery_farcaster_nonlocal_side.png +++ textures/sorcery_farcaster_nonlocal_side.png cannot compute difference between binary files Index: textures/sorcery_farcaster_nonlocal_top.png ================================================================== --- textures/sorcery_farcaster_nonlocal_top.png +++ textures/sorcery_farcaster_nonlocal_top.png cannot compute difference between binary files Index: textures/sorcery_field_emitter.png ================================================================== --- textures/sorcery_field_emitter.png +++ textures/sorcery_field_emitter.png cannot compute difference between binary files Index: textures/sorcery_fireball.png ================================================================== --- textures/sorcery_fireball.png +++ textures/sorcery_fireball.png cannot compute difference between binary files Index: textures/sorcery_flicker.png ================================================================== --- textures/sorcery_flicker.png +++ textures/sorcery_flicker.png cannot compute difference between binary files Index: textures/sorcery_fog.png ================================================================== --- textures/sorcery_fog.png +++ textures/sorcery_fog.png cannot compute difference between binary files Index: textures/sorcery_gem_amethyst.png ================================================================== --- textures/sorcery_gem_amethyst.png +++ textures/sorcery_gem_amethyst.png cannot compute difference between binary files Index: textures/sorcery_gem_amethyst_shard.png ================================================================== --- textures/sorcery_gem_amethyst_shard.png +++ textures/sorcery_gem_amethyst_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_diamond_shard.png ================================================================== --- textures/sorcery_gem_diamond_shard.png +++ textures/sorcery_gem_diamond_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_emerald.png ================================================================== --- textures/sorcery_gem_emerald.png +++ textures/sorcery_gem_emerald.png cannot compute difference between binary files Index: textures/sorcery_gem_emerald_shard.png ================================================================== --- textures/sorcery_gem_emerald_shard.png +++ textures/sorcery_gem_emerald_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_lumite.png ================================================================== --- textures/sorcery_gem_lumite.png +++ textures/sorcery_gem_lumite.png cannot compute difference between binary files Index: textures/sorcery_gem_lumite_shard.png ================================================================== --- textures/sorcery_gem_lumite_shard.png +++ textures/sorcery_gem_lumite_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_luxite.png ================================================================== --- textures/sorcery_gem_luxite.png +++ textures/sorcery_gem_luxite.png cannot compute difference between binary files Index: textures/sorcery_gem_luxite_shard.png ================================================================== --- textures/sorcery_gem_luxite_shard.png +++ textures/sorcery_gem_luxite_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_ruby.png ================================================================== --- textures/sorcery_gem_ruby.png +++ textures/sorcery_gem_ruby.png cannot compute difference between binary files Index: textures/sorcery_gem_ruby_shard.png ================================================================== --- textures/sorcery_gem_ruby_shard.png +++ textures/sorcery_gem_ruby_shard.png cannot compute difference between binary files Index: textures/sorcery_gem_sapphire.png ================================================================== --- textures/sorcery_gem_sapphire.png +++ textures/sorcery_gem_sapphire.png cannot compute difference between binary files Index: textures/sorcery_gem_sapphire_shard.png ================================================================== --- textures/sorcery_gem_sapphire_shard.png +++ textures/sorcery_gem_sapphire_shard.png cannot compute difference between binary files Index: textures/sorcery_glitter.png ================================================================== --- textures/sorcery_glitter.png +++ textures/sorcery_glitter.png cannot compute difference between binary files Index: textures/sorcery_gold_fragment.png ================================================================== --- textures/sorcery_gold_fragment.png +++ textures/sorcery_gold_fragment.png cannot compute difference between binary files Index: textures/sorcery_gold_powder.png ================================================================== --- textures/sorcery_gold_powder.png +++ textures/sorcery_gold_powder.png cannot compute difference between binary files Index: textures/sorcery_gravitator_panel_crush.png ================================================================== --- textures/sorcery_gravitator_panel_crush.png +++ textures/sorcery_gravitator_panel_crush.png cannot compute difference between binary files Index: textures/sorcery_gravitator_panel_lift.png ================================================================== --- textures/sorcery_gravitator_panel_lift.png +++ textures/sorcery_gravitator_panel_lift.png cannot compute difference between binary files Index: textures/sorcery_gravitator_panel_off.png ================================================================== --- textures/sorcery_gravitator_panel_off.png +++ textures/sorcery_gravitator_panel_off.png cannot compute difference between binary files Index: textures/sorcery_gravitator_panel_slow.png ================================================================== --- textures/sorcery_gravitator_panel_slow.png +++ textures/sorcery_gravitator_panel_slow.png cannot compute difference between binary files Index: textures/sorcery_gravitator_panel_stop.png ================================================================== --- textures/sorcery_gravitator_panel_stop.png +++ textures/sorcery_gravitator_panel_stop.png cannot compute difference between binary files Index: textures/sorcery_gravitator_side.png ================================================================== --- textures/sorcery_gravitator_side.png +++ textures/sorcery_gravitator_side.png cannot compute difference between binary files Index: textures/sorcery_gravity_manipulator.png ================================================================== --- textures/sorcery_gravity_manipulator.png +++ textures/sorcery_gravity_manipulator.png cannot compute difference between binary files Index: textures/sorcery_harvester_receptacle.png ================================================================== --- textures/sorcery_harvester_receptacle.png +++ textures/sorcery_harvester_receptacle.png cannot compute difference between binary files Index: textures/sorcery_impervium_fragment.png ================================================================== --- textures/sorcery_impervium_fragment.png +++ textures/sorcery_impervium_fragment.png cannot compute difference between binary files Index: textures/sorcery_impervium_pick.png ================================================================== --- textures/sorcery_impervium_pick.png +++ textures/sorcery_impervium_pick.png cannot compute difference between binary files Index: textures/sorcery_impervium_powder.png ================================================================== --- textures/sorcery_impervium_powder.png +++ textures/sorcery_impervium_powder.png cannot compute difference between binary files Index: textures/sorcery_inferno_crystal.png ================================================================== --- textures/sorcery_inferno_crystal.png +++ textures/sorcery_inferno_crystal.png cannot compute difference between binary files Index: textures/sorcery_infuser_chamber.png ================================================================== --- textures/sorcery_infuser_chamber.png +++ textures/sorcery_infuser_chamber.png cannot compute difference between binary files Index: textures/sorcery_infuser_concentrator.png ================================================================== --- textures/sorcery_infuser_concentrator.png +++ textures/sorcery_infuser_concentrator.png cannot compute difference between binary files Index: textures/sorcery_infuser_mod_prolongator.png ================================================================== --- textures/sorcery_infuser_mod_prolongator.png +++ textures/sorcery_infuser_mod_prolongator.png cannot compute difference between binary files Index: textures/sorcery_infuser_tube.png ================================================================== --- textures/sorcery_infuser_tube.png +++ textures/sorcery_infuser_tube.png cannot compute difference between binary files Index: textures/sorcery_ingot_outline.png ================================================================== --- textures/sorcery_ingot_outline.png +++ textures/sorcery_ingot_outline.png cannot compute difference between binary files Index: textures/sorcery_ink_bottle.png ================================================================== --- textures/sorcery_ink_bottle.png +++ textures/sorcery_ink_bottle.png cannot compute difference between binary files Index: textures/sorcery_inversion_matrix.png ================================================================== --- textures/sorcery_inversion_matrix.png +++ textures/sorcery_inversion_matrix.png cannot compute difference between binary files Index: textures/sorcery_inverter_coil.png ================================================================== --- textures/sorcery_inverter_coil.png +++ textures/sorcery_inverter_coil.png cannot compute difference between binary files Index: textures/sorcery_iridium_fragment.png ================================================================== --- textures/sorcery_iridium_fragment.png +++ textures/sorcery_iridium_fragment.png cannot compute difference between binary files Index: textures/sorcery_iridium_ore.png ================================================================== --- textures/sorcery_iridium_ore.png +++ textures/sorcery_iridium_ore.png cannot compute difference between binary files Index: textures/sorcery_iridium_pick.png ================================================================== --- textures/sorcery_iridium_pick.png +++ textures/sorcery_iridium_pick.png cannot compute difference between binary files Index: textures/sorcery_iridium_powder.png ================================================================== --- textures/sorcery_iridium_powder.png +++ textures/sorcery_iridium_powder.png cannot compute difference between binary files Index: textures/sorcery_iridium_sword.png ================================================================== --- textures/sorcery_iridium_sword.png +++ textures/sorcery_iridium_sword.png cannot compute difference between binary files Index: textures/sorcery_lens_amplifier.png ================================================================== --- textures/sorcery_lens_amplifier.png +++ textures/sorcery_lens_amplifier.png cannot compute difference between binary files Index: textures/sorcery_lens_concave.png ================================================================== --- textures/sorcery_lens_concave.png +++ textures/sorcery_lens_concave.png cannot compute difference between binary files Index: textures/sorcery_lens_convex.png ================================================================== --- textures/sorcery_lens_convex.png +++ textures/sorcery_lens_convex.png cannot compute difference between binary files Index: textures/sorcery_lens_overlay_gold.png ================================================================== --- textures/sorcery_lens_overlay_gold.png +++ textures/sorcery_lens_overlay_gold.png cannot compute difference between binary files Index: textures/sorcery_lens_rectifier.png ================================================================== --- textures/sorcery_lens_rectifier.png +++ textures/sorcery_lens_rectifier.png cannot compute difference between binary files Index: textures/sorcery_levitanium_fragment.png ================================================================== --- textures/sorcery_levitanium_fragment.png +++ textures/sorcery_levitanium_fragment.png cannot compute difference between binary files Index: textures/sorcery_levitanium_ore.png ================================================================== --- textures/sorcery_levitanium_ore.png +++ textures/sorcery_levitanium_ore.png cannot compute difference between binary files Index: textures/sorcery_levitanium_powder.png ================================================================== --- textures/sorcery_levitanium_powder.png +++ textures/sorcery_levitanium_powder.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_back.png ================================================================== --- textures/sorcery_ley_generator_back.png +++ textures/sorcery_ley_generator_back.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_bottom.png ================================================================== --- textures/sorcery_ley_generator_bottom.png +++ textures/sorcery_ley_generator_bottom.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_front_off.png ================================================================== --- textures/sorcery_ley_generator_front_off.png +++ textures/sorcery_ley_generator_front_off.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_front_on.png ================================================================== --- textures/sorcery_ley_generator_front_on.png +++ textures/sorcery_ley_generator_front_on.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_side.png ================================================================== --- textures/sorcery_ley_generator_side.png +++ textures/sorcery_ley_generator_side.png cannot compute difference between binary files Index: textures/sorcery_ley_generator_top.png ================================================================== --- textures/sorcery_ley_generator_top.png +++ textures/sorcery_ley_generator_top.png cannot compute difference between binary files Index: textures/sorcery_ley_plug.png ================================================================== --- textures/sorcery_ley_plug.png +++ textures/sorcery_ley_plug.png cannot compute difference between binary files Index: textures/sorcery_ley_puncture.png ================================================================== --- textures/sorcery_ley_puncture.png +++ textures/sorcery_ley_puncture.png cannot compute difference between binary files Index: textures/sorcery_ley_switch_base.png ================================================================== --- textures/sorcery_ley_switch_base.png +++ textures/sorcery_ley_switch_base.png cannot compute difference between binary files Index: textures/sorcery_ley_switch_down.png ================================================================== --- textures/sorcery_ley_switch_down.png +++ textures/sorcery_ley_switch_down.png cannot compute difference between binary files Index: textures/sorcery_ley_switch_panel.png ================================================================== --- textures/sorcery_ley_switch_panel.png +++ textures/sorcery_ley_switch_panel.png cannot compute difference between binary files Index: textures/sorcery_ley_switch_up.png ================================================================== --- textures/sorcery_ley_switch_up.png +++ textures/sorcery_ley_switch_up.png cannot compute difference between binary files Index: textures/sorcery_leyline_stabilizer.png ================================================================== --- textures/sorcery_leyline_stabilizer.png +++ textures/sorcery_leyline_stabilizer.png cannot compute difference between binary files Index: textures/sorcery_lithium_fragment.png ================================================================== --- textures/sorcery_lithium_fragment.png +++ textures/sorcery_lithium_fragment.png cannot compute difference between binary files Index: textures/sorcery_lithium_ore.png ================================================================== --- textures/sorcery_lithium_ore.png +++ textures/sorcery_lithium_ore.png cannot compute difference between binary files Index: textures/sorcery_lithium_powder.png ================================================================== --- textures/sorcery_lithium_powder.png +++ textures/sorcery_lithium_powder.png cannot compute difference between binary files Index: textures/sorcery_metal_iridium.png ================================================================== --- textures/sorcery_metal_iridium.png +++ textures/sorcery_metal_iridium.png cannot compute difference between binary files Index: textures/sorcery_metal_iridium_shiny.png ================================================================== --- textures/sorcery_metal_iridium_shiny.png +++ textures/sorcery_metal_iridium_shiny.png cannot compute difference between binary files Index: textures/sorcery_metal_vidrium.png ================================================================== --- textures/sorcery_metal_vidrium.png +++ textures/sorcery_metal_vidrium.png cannot compute difference between binary files Index: textures/sorcery_metal_vidrium_shiny.png ================================================================== --- textures/sorcery_metal_vidrium_shiny.png +++ textures/sorcery_metal_vidrium_shiny.png cannot compute difference between binary files Index: textures/sorcery_mill_back.png ================================================================== --- textures/sorcery_mill_back.png +++ textures/sorcery_mill_back.png cannot compute difference between binary files Index: textures/sorcery_mill_bottom.png ================================================================== --- textures/sorcery_mill_bottom.png +++ textures/sorcery_mill_bottom.png cannot compute difference between binary files Index: textures/sorcery_mill_front.png ================================================================== --- textures/sorcery_mill_front.png +++ textures/sorcery_mill_front.png cannot compute difference between binary files Index: textures/sorcery_mill_grindhead.png ================================================================== --- textures/sorcery_mill_grindhead.png +++ textures/sorcery_mill_grindhead.png cannot compute difference between binary files Index: textures/sorcery_mill_grindhead_shade.png ================================================================== --- textures/sorcery_mill_grindhead_shade.png +++ textures/sorcery_mill_grindhead_shade.png cannot compute difference between binary files Index: textures/sorcery_mill_side.png ================================================================== --- textures/sorcery_mill_side.png +++ textures/sorcery_mill_side.png cannot compute difference between binary files Index: textures/sorcery_mill_top.png ================================================================== --- textures/sorcery_mill_top.png +++ textures/sorcery_mill_top.png cannot compute difference between binary files Index: textures/sorcery_moon_phases.png ================================================================== --- textures/sorcery_moon_phases.png +++ textures/sorcery_moon_phases.png cannot compute difference between binary files Index: textures/sorcery_node_liquid.png ================================================================== --- textures/sorcery_node_liquid.png +++ textures/sorcery_node_liquid.png cannot compute difference between binary files Index: textures/sorcery_oil_dull.png ================================================================== --- textures/sorcery_oil_dull.png +++ textures/sorcery_oil_dull.png cannot compute difference between binary files Index: textures/sorcery_oil_sparkle.png ================================================================== --- textures/sorcery_oil_sparkle.png +++ textures/sorcery_oil_sparkle.png cannot compute difference between binary files Index: textures/sorcery_pen.png ================================================================== --- textures/sorcery_pen.png +++ textures/sorcery_pen.png cannot compute difference between binary files Index: textures/sorcery_pen_nib.png ================================================================== --- textures/sorcery_pen_nib.png +++ textures/sorcery_pen_nib.png cannot compute difference between binary files Index: textures/sorcery_pentacle.png ================================================================== --- textures/sorcery_pentacle.png +++ textures/sorcery_pentacle.png cannot compute difference between binary files Index: textures/sorcery_pentacle_power_cognic.png ================================================================== --- textures/sorcery_pentacle_power_cognic.png +++ textures/sorcery_pentacle_power_cognic.png cannot compute difference between binary files Index: textures/sorcery_pentacle_power_counterpraxic.png ================================================================== --- textures/sorcery_pentacle_power_counterpraxic.png +++ textures/sorcery_pentacle_power_counterpraxic.png cannot compute difference between binary files Index: textures/sorcery_pentacle_power_entropic.png ================================================================== --- textures/sorcery_pentacle_power_entropic.png +++ textures/sorcery_pentacle_power_entropic.png cannot compute difference between binary files Index: textures/sorcery_pentacle_power_praxic.png ================================================================== --- textures/sorcery_pentacle_power_praxic.png +++ textures/sorcery_pentacle_power_praxic.png cannot compute difference between binary files Index: textures/sorcery_pentacle_power_syncretic.png ================================================================== --- textures/sorcery_pentacle_power_syncretic.png +++ textures/sorcery_pentacle_power_syncretic.png cannot compute difference between binary files Index: textures/sorcery_pipe.png ================================================================== --- textures/sorcery_pipe.png +++ textures/sorcery_pipe.png cannot compute difference between binary files Index: textures/sorcery_planet_phases.png ================================================================== --- textures/sorcery_planet_phases.png +++ textures/sorcery_planet_phases.png cannot compute difference between binary files Index: textures/sorcery_platinum_fragment.png ================================================================== --- textures/sorcery_platinum_fragment.png +++ textures/sorcery_platinum_fragment.png cannot compute difference between binary files Index: textures/sorcery_platinum_ore.png ================================================================== --- textures/sorcery_platinum_ore.png +++ textures/sorcery_platinum_ore.png cannot compute difference between binary files Index: textures/sorcery_platinum_pick.png ================================================================== --- textures/sorcery_platinum_pick.png +++ textures/sorcery_platinum_pick.png cannot compute difference between binary files Index: textures/sorcery_platinum_powder.png ================================================================== --- textures/sorcery_platinum_powder.png +++ textures/sorcery_platinum_powder.png cannot compute difference between binary files Index: textures/sorcery_platinum_sword.png ================================================================== --- textures/sorcery_platinum_sword.png +++ textures/sorcery_platinum_sword.png cannot compute difference between binary files Index: textures/sorcery_portal_front.png ================================================================== --- textures/sorcery_portal_front.png +++ textures/sorcery_portal_front.png cannot compute difference between binary files Index: textures/sorcery_portal_pad_bottom.png ================================================================== --- textures/sorcery_portal_pad_bottom.png +++ textures/sorcery_portal_pad_bottom.png cannot compute difference between binary files Index: textures/sorcery_portal_pad_front.png ================================================================== --- textures/sorcery_portal_pad_front.png +++ textures/sorcery_portal_pad_front.png cannot compute difference between binary files Index: textures/sorcery_portal_pad_side.png ================================================================== --- textures/sorcery_portal_pad_side.png +++ textures/sorcery_portal_pad_side.png cannot compute difference between binary files Index: textures/sorcery_portal_pad_top.png ================================================================== --- textures/sorcery_portal_pad_top.png +++ textures/sorcery_portal_pad_top.png cannot compute difference between binary files Index: textures/sorcery_portal_side.png ================================================================== --- textures/sorcery_portal_side.png +++ textures/sorcery_portal_side.png cannot compute difference between binary files Index: textures/sorcery_portal_top.png ================================================================== --- textures/sorcery_portal_top.png +++ textures/sorcery_portal_top.png cannot compute difference between binary files Index: textures/sorcery_powder_firestorm.png ================================================================== --- textures/sorcery_powder_firestorm.png +++ textures/sorcery_powder_firestorm.png cannot compute difference between binary files Index: textures/sorcery_pulp.png ================================================================== --- textures/sorcery_pulp.png +++ textures/sorcery_pulp.png cannot compute difference between binary files Index: textures/sorcery_pulp_inky.png ================================================================== --- textures/sorcery_pulp_inky.png +++ textures/sorcery_pulp_inky.png cannot compute difference between binary files Index: textures/sorcery_pulp_sheet.png ================================================================== --- textures/sorcery_pulp_sheet.png +++ textures/sorcery_pulp_sheet.png cannot compute difference between binary files Index: textures/sorcery_pulse_rectifier.png ================================================================== --- textures/sorcery_pulse_rectifier.png +++ textures/sorcery_pulse_rectifier.png cannot compute difference between binary files Index: textures/sorcery_punchcard.png ================================================================== --- textures/sorcery_punchcard.png +++ textures/sorcery_punchcard.png cannot compute difference between binary files Index: textures/sorcery_punchcard_punched.png ================================================================== --- textures/sorcery_punchcard_punched.png +++ textures/sorcery_punchcard_punched.png cannot compute difference between binary files Index: textures/sorcery_radiatic_filament.png ================================================================== --- textures/sorcery_radiatic_filament.png +++ textures/sorcery_radiatic_filament.png cannot compute difference between binary files Index: textures/sorcery_rune_disjoin.png ================================================================== --- textures/sorcery_rune_disjoin.png +++ textures/sorcery_rune_disjoin.png cannot compute difference between binary files Index: textures/sorcery_rune_dominate.png ================================================================== --- textures/sorcery_rune_dominate.png +++ textures/sorcery_rune_dominate.png cannot compute difference between binary files Index: textures/sorcery_rune_excavate.png ================================================================== --- textures/sorcery_rune_excavate.png +++ textures/sorcery_rune_excavate.png cannot compute difference between binary files Index: textures/sorcery_rune_genesis.png ================================================================== --- textures/sorcery_rune_genesis.png +++ textures/sorcery_rune_genesis.png cannot compute difference between binary files Index: textures/sorcery_rune_luminate.png ================================================================== --- textures/sorcery_rune_luminate.png +++ textures/sorcery_rune_luminate.png cannot compute difference between binary files Index: textures/sorcery_rune_obliterate.png ================================================================== --- textures/sorcery_rune_obliterate.png +++ textures/sorcery_rune_obliterate.png cannot compute difference between binary files Index: textures/sorcery_rune_repulse.png ================================================================== --- textures/sorcery_rune_repulse.png +++ textures/sorcery_rune_repulse.png cannot compute difference between binary files Index: textures/sorcery_rune_translocate.png ================================================================== --- textures/sorcery_rune_translocate.png +++ textures/sorcery_rune_translocate.png cannot compute difference between binary files Index: textures/sorcery_rune_wrench.png ================================================================== --- textures/sorcery_rune_wrench.png +++ textures/sorcery_rune_wrench.png cannot compute difference between binary files Index: textures/sorcery_rune_wrench_iridium.png ================================================================== --- textures/sorcery_rune_wrench_iridium.png +++ textures/sorcery_rune_wrench_iridium.png cannot compute difference between binary files Index: textures/sorcery_scissors_aluminum.png ================================================================== --- textures/sorcery_scissors_aluminum.png +++ textures/sorcery_scissors_aluminum.png cannot compute difference between binary files Index: textures/sorcery_scissors_bronze.png ================================================================== --- textures/sorcery_scissors_bronze.png +++ textures/sorcery_scissors_bronze.png cannot compute difference between binary files Index: textures/sorcery_scissors_iridium.png ================================================================== --- textures/sorcery_scissors_iridium.png +++ textures/sorcery_scissors_iridium.png cannot compute difference between binary files Index: textures/sorcery_scissors_steel.png ================================================================== --- textures/sorcery_scissors_steel.png +++ textures/sorcery_scissors_steel.png cannot compute difference between binary files Index: textures/sorcery_scissors_tungsten.png ================================================================== --- textures/sorcery_scissors_tungsten.png +++ textures/sorcery_scissors_tungsten.png cannot compute difference between binary files Index: textures/sorcery_screw.png ================================================================== --- textures/sorcery_screw.png +++ textures/sorcery_screw.png cannot compute difference between binary files Index: textures/sorcery_silver_fragment.png ================================================================== --- textures/sorcery_silver_fragment.png +++ textures/sorcery_silver_fragment.png cannot compute difference between binary files Index: textures/sorcery_silver_ore.png ================================================================== --- textures/sorcery_silver_ore.png +++ textures/sorcery_silver_ore.png cannot compute difference between binary files Index: textures/sorcery_silver_powder.png ================================================================== --- textures/sorcery_silver_powder.png +++ textures/sorcery_silver_powder.png cannot compute difference between binary files Index: textures/sorcery_smelter_bottom.png ================================================================== --- textures/sorcery_smelter_bottom.png +++ textures/sorcery_smelter_bottom.png cannot compute difference between binary files Index: textures/sorcery_smelter_front.png ================================================================== --- textures/sorcery_smelter_front.png +++ textures/sorcery_smelter_front.png cannot compute difference between binary files Index: textures/sorcery_smelter_front_hot.png ================================================================== --- textures/sorcery_smelter_front_hot.png +++ textures/sorcery_smelter_front_hot.png cannot compute difference between binary files Index: textures/sorcery_smelter_side.png ================================================================== --- textures/sorcery_smelter_side.png +++ textures/sorcery_smelter_side.png cannot compute difference between binary files Index: textures/sorcery_smelter_top_2.png ================================================================== --- textures/sorcery_smelter_top_2.png +++ textures/sorcery_smelter_top_2.png cannot compute difference between binary files Index: textures/sorcery_smelter_top_3.png ================================================================== --- textures/sorcery_smelter_top_3.png +++ textures/sorcery_smelter_top_3.png cannot compute difference between binary files Index: textures/sorcery_smelter_top_4.png ================================================================== --- textures/sorcery_smelter_top_4.png +++ textures/sorcery_smelter_top_4.png cannot compute difference between binary files Index: textures/sorcery_sparking.png ================================================================== --- textures/sorcery_sparking.png +++ textures/sorcery_sparking.png cannot compute difference between binary files Index: textures/sorcery_sparkle.png ================================================================== --- textures/sorcery_sparkle.png +++ textures/sorcery_sparkle.png cannot compute difference between binary files Index: textures/sorcery_sputter.png ================================================================== --- textures/sorcery_sputter.png +++ textures/sorcery_sputter.png cannot compute difference between binary files Index: textures/sorcery_statlamp_blue.png ================================================================== --- textures/sorcery_statlamp_blue.png +++ textures/sorcery_statlamp_blue.png cannot compute difference between binary files Index: textures/sorcery_statlamp_green.png ================================================================== --- textures/sorcery_statlamp_green.png +++ textures/sorcery_statlamp_green.png cannot compute difference between binary files Index: textures/sorcery_statlamp_off.png ================================================================== --- textures/sorcery_statlamp_off.png +++ textures/sorcery_statlamp_off.png cannot compute difference between binary files Index: textures/sorcery_statlamp_purple.png ================================================================== --- textures/sorcery_statlamp_purple.png +++ textures/sorcery_statlamp_purple.png cannot compute difference between binary files Index: textures/sorcery_statlamp_red.png ================================================================== --- textures/sorcery_statlamp_red.png +++ textures/sorcery_statlamp_red.png cannot compute difference between binary files Index: textures/sorcery_statlamp_yellow.png ================================================================== --- textures/sorcery_statlamp_yellow.png +++ textures/sorcery_statlamp_yellow.png cannot compute difference between binary files Index: textures/sorcery_steel_fragment.png ================================================================== --- textures/sorcery_steel_fragment.png +++ textures/sorcery_steel_fragment.png cannot compute difference between binary files Index: textures/sorcery_steel_powder.png ================================================================== --- textures/sorcery_steel_powder.png +++ textures/sorcery_steel_powder.png cannot compute difference between binary files Index: textures/sorcery_suppression_matrix.png ================================================================== --- textures/sorcery_suppression_matrix.png +++ textures/sorcery_suppression_matrix.png cannot compute difference between binary files Index: textures/sorcery_tacit_couple.png ================================================================== --- textures/sorcery_tacit_couple.png +++ textures/sorcery_tacit_couple.png cannot compute difference between binary files Index: textures/sorcery_tacit_web.png ================================================================== --- textures/sorcery_tacit_web.png +++ textures/sorcery_tacit_web.png cannot compute difference between binary files Index: textures/sorcery_tap_inv.png ================================================================== --- textures/sorcery_tap_inv.png +++ textures/sorcery_tap_inv.png cannot compute difference between binary files Index: textures/sorcery_tin_fragment.png ================================================================== --- textures/sorcery_tin_fragment.png +++ textures/sorcery_tin_fragment.png cannot compute difference between binary files Index: textures/sorcery_tin_powder.png ================================================================== --- textures/sorcery_tin_powder.png +++ textures/sorcery_tin_powder.png cannot compute difference between binary files Index: textures/sorcery_translocator_front.png ================================================================== --- textures/sorcery_translocator_front.png +++ textures/sorcery_translocator_front.png cannot compute difference between binary files Index: textures/sorcery_translocator_module_receive.png ================================================================== --- textures/sorcery_translocator_module_receive.png +++ textures/sorcery_translocator_module_receive.png cannot compute difference between binary files Index: textures/sorcery_translocator_module_receive_panel.png ================================================================== --- textures/sorcery_translocator_module_receive_panel.png +++ textures/sorcery_translocator_module_receive_panel.png cannot compute difference between binary files Index: textures/sorcery_translocator_module_transmit.png ================================================================== --- textures/sorcery_translocator_module_transmit.png +++ textures/sorcery_translocator_module_transmit.png cannot compute difference between binary files Index: textures/sorcery_translocator_module_transmit_bg.png ================================================================== --- textures/sorcery_translocator_module_transmit_bg.png +++ textures/sorcery_translocator_module_transmit_bg.png cannot compute difference between binary files Index: textures/sorcery_translocator_module_transmit_panel.png ================================================================== --- textures/sorcery_translocator_module_transmit_panel.png +++ textures/sorcery_translocator_module_transmit_panel.png cannot compute difference between binary files Index: textures/sorcery_translocator_side.png ================================================================== --- textures/sorcery_translocator_side.png +++ textures/sorcery_translocator_side.png cannot compute difference between binary files Index: textures/sorcery_translocator_top.png ================================================================== --- textures/sorcery_translocator_top.png +++ textures/sorcery_translocator_top.png cannot compute difference between binary files Index: textures/sorcery_trough_bottom.png ================================================================== --- textures/sorcery_trough_bottom.png +++ textures/sorcery_trough_bottom.png cannot compute difference between binary files Index: textures/sorcery_trough_side.png ================================================================== --- textures/sorcery_trough_side.png +++ textures/sorcery_trough_side.png cannot compute difference between binary files Index: textures/sorcery_trough_side_handle.png ================================================================== --- textures/sorcery_trough_side_handle.png +++ textures/sorcery_trough_side_handle.png cannot compute difference between binary files Index: textures/sorcery_trough_top_overlay.png ================================================================== --- textures/sorcery_trough_top_overlay.png +++ textures/sorcery_trough_top_overlay.png cannot compute difference between binary files Index: textures/sorcery_tungsten_fragment.png ================================================================== --- textures/sorcery_tungsten_fragment.png +++ textures/sorcery_tungsten_fragment.png cannot compute difference between binary files Index: textures/sorcery_tungsten_ore.png ================================================================== --- textures/sorcery_tungsten_ore.png +++ textures/sorcery_tungsten_ore.png cannot compute difference between binary files Index: textures/sorcery_tungsten_pick.png ================================================================== --- textures/sorcery_tungsten_pick.png +++ textures/sorcery_tungsten_pick.png cannot compute difference between binary files Index: textures/sorcery_tungsten_powder.png ================================================================== --- textures/sorcery_tungsten_powder.png +++ textures/sorcery_tungsten_powder.png cannot compute difference between binary files Index: textures/sorcery_tungsten_sword.png ================================================================== --- textures/sorcery_tungsten_sword.png +++ textures/sorcery_tungsten_sword.png cannot compute difference between binary files Index: textures/sorcery_tuning_disc.png ================================================================== --- textures/sorcery_tuning_disc.png +++ textures/sorcery_tuning_disc.png cannot compute difference between binary files Index: textures/sorcery_tyrannium_fragment.png ================================================================== --- textures/sorcery_tyrannium_fragment.png +++ textures/sorcery_tyrannium_fragment.png cannot compute difference between binary files Index: textures/sorcery_tyrannium_pick.png ================================================================== --- textures/sorcery_tyrannium_pick.png +++ textures/sorcery_tyrannium_pick.png cannot compute difference between binary files Index: textures/sorcery_tyrannium_powder.png ================================================================== --- textures/sorcery_tyrannium_powder.png +++ textures/sorcery_tyrannium_powder.png cannot compute difference between binary files Index: textures/sorcery_tyrannium_sword.png ================================================================== --- textures/sorcery_tyrannium_sword.png +++ textures/sorcery_tyrannium_sword.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_amulet.png ================================================================== --- textures/sorcery_ui_ghost_amulet.png +++ textures/sorcery_ui_ghost_amulet.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_ink_bottle.png ================================================================== --- textures/sorcery_ui_ghost_ink_bottle.png +++ textures/sorcery_ui_ghost_ink_bottle.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_paper.png ================================================================== --- textures/sorcery_ui_ghost_paper.png +++ textures/sorcery_ui_ghost_paper.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_pen.png ================================================================== --- textures/sorcery_ui_ghost_pen.png +++ textures/sorcery_ui_ghost_pen.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_punchcard.png ================================================================== --- textures/sorcery_ui_ghost_punchcard.png +++ textures/sorcery_ui_ghost_punchcard.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_rune.png ================================================================== --- textures/sorcery_ui_ghost_rune.png +++ textures/sorcery_ui_ghost_rune.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_rune_wrench.png ================================================================== --- textures/sorcery_ui_ghost_rune_wrench.png +++ textures/sorcery_ui_ghost_rune_wrench.png cannot compute difference between binary files Index: textures/sorcery_ui_ghost_wand.png ================================================================== --- textures/sorcery_ui_ghost_wand.png +++ textures/sorcery_ui_ghost_wand.png cannot compute difference between binary files Index: textures/sorcery_ui_infuse_tube.png ================================================================== --- textures/sorcery_ui_infuse_tube.png +++ textures/sorcery_ui_infuse_tube.png cannot compute difference between binary files Index: textures/sorcery_ui_inkwell_bar.png ================================================================== --- textures/sorcery_ui_inkwell_bar.png +++ textures/sorcery_ui_inkwell_bar.png cannot compute difference between binary files Index: textures/sorcery_ui_inkwell_bar_black.png ================================================================== --- textures/sorcery_ui_inkwell_bar_black.png +++ textures/sorcery_ui_inkwell_bar_black.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_0.png ================================================================== --- textures/sorcery_ui_manaring_0.png +++ textures/sorcery_ui_manaring_0.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_1.png ================================================================== --- textures/sorcery_ui_manaring_1.png +++ textures/sorcery_ui_manaring_1.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_10.png ================================================================== --- textures/sorcery_ui_manaring_10.png +++ textures/sorcery_ui_manaring_10.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_11.png ================================================================== --- textures/sorcery_ui_manaring_11.png +++ textures/sorcery_ui_manaring_11.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_12.png ================================================================== --- textures/sorcery_ui_manaring_12.png +++ textures/sorcery_ui_manaring_12.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_13.png ================================================================== --- textures/sorcery_ui_manaring_13.png +++ textures/sorcery_ui_manaring_13.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_14.png ================================================================== --- textures/sorcery_ui_manaring_14.png +++ textures/sorcery_ui_manaring_14.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_15.png ================================================================== --- textures/sorcery_ui_manaring_15.png +++ textures/sorcery_ui_manaring_15.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_16.png ================================================================== --- textures/sorcery_ui_manaring_16.png +++ textures/sorcery_ui_manaring_16.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_2.png ================================================================== --- textures/sorcery_ui_manaring_2.png +++ textures/sorcery_ui_manaring_2.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_3.png ================================================================== --- textures/sorcery_ui_manaring_3.png +++ textures/sorcery_ui_manaring_3.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_4.png ================================================================== --- textures/sorcery_ui_manaring_4.png +++ textures/sorcery_ui_manaring_4.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_5.png ================================================================== --- textures/sorcery_ui_manaring_5.png +++ textures/sorcery_ui_manaring_5.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_6.png ================================================================== --- textures/sorcery_ui_manaring_6.png +++ textures/sorcery_ui_manaring_6.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_7.png ================================================================== --- textures/sorcery_ui_manaring_7.png +++ textures/sorcery_ui_manaring_7.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_8.png ================================================================== --- textures/sorcery_ui_manaring_8.png +++ textures/sorcery_ui_manaring_8.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_9.png ================================================================== --- textures/sorcery_ui_manaring_9.png +++ textures/sorcery_ui_manaring_9.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_0.png ================================================================== --- textures/sorcery_ui_manaring_flash_0.png +++ textures/sorcery_ui_manaring_flash_0.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_1.png ================================================================== --- textures/sorcery_ui_manaring_flash_1.png +++ textures/sorcery_ui_manaring_flash_1.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_10.png ================================================================== --- textures/sorcery_ui_manaring_flash_10.png +++ textures/sorcery_ui_manaring_flash_10.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_11.png ================================================================== --- textures/sorcery_ui_manaring_flash_11.png +++ textures/sorcery_ui_manaring_flash_11.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_12.png ================================================================== --- textures/sorcery_ui_manaring_flash_12.png +++ textures/sorcery_ui_manaring_flash_12.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_13.png ================================================================== --- textures/sorcery_ui_manaring_flash_13.png +++ textures/sorcery_ui_manaring_flash_13.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_14.png ================================================================== --- textures/sorcery_ui_manaring_flash_14.png +++ textures/sorcery_ui_manaring_flash_14.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_15.png ================================================================== --- textures/sorcery_ui_manaring_flash_15.png +++ textures/sorcery_ui_manaring_flash_15.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_16.png ================================================================== --- textures/sorcery_ui_manaring_flash_16.png +++ textures/sorcery_ui_manaring_flash_16.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_2.png ================================================================== --- textures/sorcery_ui_manaring_flash_2.png +++ textures/sorcery_ui_manaring_flash_2.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_3.png ================================================================== --- textures/sorcery_ui_manaring_flash_3.png +++ textures/sorcery_ui_manaring_flash_3.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_4.png ================================================================== --- textures/sorcery_ui_manaring_flash_4.png +++ textures/sorcery_ui_manaring_flash_4.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_5.png ================================================================== --- textures/sorcery_ui_manaring_flash_5.png +++ textures/sorcery_ui_manaring_flash_5.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_6.png ================================================================== --- textures/sorcery_ui_manaring_flash_6.png +++ textures/sorcery_ui_manaring_flash_6.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_7.png ================================================================== --- textures/sorcery_ui_manaring_flash_7.png +++ textures/sorcery_ui_manaring_flash_7.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_8.png ================================================================== --- textures/sorcery_ui_manaring_flash_8.png +++ textures/sorcery_ui_manaring_flash_8.png cannot compute difference between binary files Index: textures/sorcery_ui_manaring_flash_9.png ================================================================== --- textures/sorcery_ui_manaring_flash_9.png +++ textures/sorcery_ui_manaring_flash_9.png cannot compute difference between binary files Index: textures/sorcery_ui_pg_next.png ================================================================== --- textures/sorcery_ui_pg_next.png +++ textures/sorcery_ui_pg_next.png cannot compute difference between binary files Index: textures/sorcery_ui_thaum_1.png ================================================================== --- textures/sorcery_ui_thaum_1.png +++ textures/sorcery_ui_thaum_1.png cannot compute difference between binary files Index: textures/sorcery_ui_thaum_2.png ================================================================== --- textures/sorcery_ui_thaum_2.png +++ textures/sorcery_ui_thaum_2.png cannot compute difference between binary files Index: textures/sorcery_ui_thaum_3.png ================================================================== --- textures/sorcery_ui_thaum_3.png +++ textures/sorcery_ui_thaum_3.png cannot compute difference between binary files Index: textures/sorcery_unobtanium_fragment.png ================================================================== --- textures/sorcery_unobtanium_fragment.png +++ textures/sorcery_unobtanium_fragment.png cannot compute difference between binary files Index: textures/sorcery_unobtanium_pick.png ================================================================== --- textures/sorcery_unobtanium_pick.png +++ textures/sorcery_unobtanium_pick.png cannot compute difference between binary files Index: textures/sorcery_unobtanium_powder.png ================================================================== --- textures/sorcery_unobtanium_powder.png +++ textures/sorcery_unobtanium_powder.png cannot compute difference between binary files Index: textures/sorcery_unobtanium_sword.png ================================================================== --- textures/sorcery_unobtanium_sword.png +++ textures/sorcery_unobtanium_sword.png cannot compute difference between binary files Index: textures/sorcery_valve.png ================================================================== --- textures/sorcery_valve.png +++ textures/sorcery_valve.png cannot compute difference between binary files Index: textures/sorcery_vice.png ================================================================== --- textures/sorcery_vice.png +++ textures/sorcery_vice.png cannot compute difference between binary files Index: textures/sorcery_vidrium_fragment.png ================================================================== --- textures/sorcery_vidrium_fragment.png +++ textures/sorcery_vidrium_fragment.png cannot compute difference between binary files Index: textures/sorcery_vidrium_powder.png ================================================================== --- textures/sorcery_vidrium_powder.png +++ textures/sorcery_vidrium_powder.png cannot compute difference between binary files Index: textures/sorcery_vidrium_wire.png ================================================================== --- textures/sorcery_vidrium_wire.png +++ textures/sorcery_vidrium_wire.png cannot compute difference between binary files Index: textures/sorcery_wand_amethyst_tip.png ================================================================== --- textures/sorcery_wand_amethyst_tip.png +++ textures/sorcery_wand_amethyst_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_base_acacia.png ================================================================== --- textures/sorcery_wand_base_acacia.png +++ textures/sorcery_wand_base_acacia.png cannot compute difference between binary files Index: textures/sorcery_wand_base_apple.png ================================================================== --- textures/sorcery_wand_base_apple.png +++ textures/sorcery_wand_base_apple.png cannot compute difference between binary files Index: textures/sorcery_wand_base_aspen.png ================================================================== --- textures/sorcery_wand_base_aspen.png +++ textures/sorcery_wand_base_aspen.png cannot compute difference between binary files Index: textures/sorcery_wand_base_jungle.png ================================================================== --- textures/sorcery_wand_base_jungle.png +++ textures/sorcery_wand_base_jungle.png cannot compute difference between binary files Index: textures/sorcery_wand_base_pine.png ================================================================== --- textures/sorcery_wand_base_pine.png +++ textures/sorcery_wand_base_pine.png cannot compute difference between binary files Index: textures/sorcery_wand_copper_wire.png ================================================================== --- textures/sorcery_wand_copper_wire.png +++ textures/sorcery_wand_copper_wire.png cannot compute difference between binary files Index: textures/sorcery_wand_diamond_tip.png ================================================================== --- textures/sorcery_wand_diamond_tip.png +++ textures/sorcery_wand_diamond_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_emerald_tip.png ================================================================== --- textures/sorcery_wand_emerald_tip.png +++ textures/sorcery_wand_emerald_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_gold_wire.png ================================================================== --- textures/sorcery_wand_gold_wire.png +++ textures/sorcery_wand_gold_wire.png cannot compute difference between binary files Index: textures/sorcery_wand_luxite_tip.png ================================================================== --- textures/sorcery_wand_luxite_tip.png +++ textures/sorcery_wand_luxite_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_mese_tip.png ================================================================== --- textures/sorcery_wand_mese_tip.png +++ textures/sorcery_wand_mese_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_ruby_tip.png ================================================================== --- textures/sorcery_wand_ruby_tip.png +++ textures/sorcery_wand_ruby_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_sapphire_tip.png ================================================================== --- textures/sorcery_wand_sapphire_tip.png +++ textures/sorcery_wand_sapphire_tip.png cannot compute difference between binary files Index: textures/sorcery_wand_silver_wire.png ================================================================== --- textures/sorcery_wand_silver_wire.png +++ textures/sorcery_wand_silver_wire.png cannot compute difference between binary files Index: textures/sorcery_wand_steel_wire.png ================================================================== --- textures/sorcery_wand_steel_wire.png +++ textures/sorcery_wand_steel_wire.png cannot compute difference between binary files Index: textures/sorcery_wandworking_station_side.png ================================================================== --- textures/sorcery_wandworking_station_side.png +++ textures/sorcery_wandworking_station_side.png cannot compute difference between binary files Index: textures/sorcery_wandworking_station_top.png ================================================================== --- textures/sorcery_wandworking_station_top.png +++ textures/sorcery_wandworking_station_top.png cannot compute difference between binary files Index: textures/sorcery_wandworking_station_top_rotated.png ================================================================== --- textures/sorcery_wandworking_station_top_rotated.png +++ textures/sorcery_wandworking_station_top_rotated.png cannot compute difference between binary files Index: textures/sorcery_wandworking_station_top_water.png ================================================================== --- textures/sorcery_wandworking_station_top_water.png +++ textures/sorcery_wandworking_station_top_water.png cannot compute difference between binary files Index: textures/sorcery_warding_plate.png ================================================================== --- textures/sorcery_warding_plate.png +++ textures/sorcery_warding_plate.png cannot compute difference between binary files Index: vfx.lua ================================================================== --- vfx.lua +++ vfx.lua @@ -1,7 +1,125 @@ sorcery.vfx = {} local L = sorcery.lib + +sorcery.vfx.particle = { + flicker = { fw = 64 }; + crackle = { fw = 64 }; + sparking = { fw = 16 }; + spark = { fw = 16 }; + sputter = { fw = 16 }; + glitter = { fw = 16 }; + poof = { fw = 16 }; + fog = { fw = 16}; +} + +sorcery.vfx.show = function(def) + local sp = {} + local p + if def.kind then + p = sorcery.vfx.particle[def.kind] + local img = L.image(p.img or string.format('sorcery_%s.png', def.kind)) + if def.color then img = img:glow(def.color) end + if def.warp then img = def:warp(img) end + sp.texture = img:render() + else + sp.texture = def.texture + end + + sp.collisiondetection = def.collisiondetection + sp.collision_removal = def.collision_removal + sp.object_collision = def.object_collision + + local function q(bp, rp, ao, so) + ao = ao or bp + so = so or bp + local min, max + + if def[bp] or def[rp] then + local b = def[bp] or vector.new(0,0,0) + if def[rp] then + local r + if type(def[rp]) == 'number' then + r = vector.new(def[rp],def[rp],def[rp]) + else r = def[rp] end + min = vector.subtract(b, r) + max = vector.add (b, r) + else + min, max = b,b + end + else + local dflt = vector.new(0,0,0) + min, max = def['min'..bp] or dflt, def['max'..bp] or dflt + end + + if def.amount and def.amount > 1 then + sp['min'..ao], sp['max'..ao] = min, max + else + if vector.equals(min,max) then sp[so] = min else + local d = vector.subtract(max, min) + sp[so] = vector.add(min, vector.multiply(d, math.random())) + end + end + end + q('pos','radius') + q('vel','velrange', 'vel', 'velocity') + q('acc','accrange', 'acc', 'acceleration') + local vary = def.varysize or 0 + if def.amount and def.amount > 1 then + sp.amount = def.amount + sp.time = def.time or def.life or 1 + def.life = def.life or sp.time + + sp.minsize = def.minsize or ((def.size or 1) - vary) + sp.maxsize = def.maxsize or ((def.size or 1) + vary) + sp.attached = def.attached + else + if def.minsize and def.maxsize then + sp.size = def.minsize + ((def.maxsize - def.minsize) * math.random()) + elseif vary > 0 then + sp.size = ((def.size or 1) - vary) + (vary*2*math.random()) + else sp.size = def.size end + if def.attached then + sp.pos = vector.add( + vector.rotate(sp.pos, + {x = 0, y = def.attached:get_yaw() or def.attached:get_look_horizontal(), z = 0} + ), + def.attached:get_pos() + ) + + sp.velocity = vector.add(sp.velocity, def.attached:get_velocity()) + end + end + sp.node = def.node + sp.playername = def.playername + sp.vertical = def.vertical + sp.glow = def.glow + if def.life then + if sp.amount then + if def.varylife then + sp.minexptime = def.life - def.varylife + sp.maxexptime = def.life + def.varylife + else + sp.minexptime, sp.maxexptime = def.life, def.life + end + else + sp.expirationtime = def.life + end + end + if p and p.fw then + sp.animation = { + type = 'vertical_frames'; + aspect_w = p.fw, aspect_h = p.fh or p.fw; + length = (sp.maxexptime or sp.life or 1) + 0.1; + } + end + if sp.amount then + minetest.add_particlespawner(sp) + else + minetest.add_particle(sp) + end +end sorcery.vfx.glowspark = function(color) local spark = L.image('sorcery_spark.png') return spark:blit(spark:multiply(color)) end @@ -9,32 +127,50 @@ sorcery.vfx.cast_sparkle = function(caster,color,strength,duration,pos) local ofs = pos and function(x) return vector.add(pos,x) end or function(x) return x end local height = caster:get_properties().eye_height - minetest.add_particlespawner { - amount = 70 * strength; - time = duration or 1.5; + sorcery.vfx.show { + amount = 4 * (0.5+strength*0.5), time = duration or 1.5; + kind = 'spark', color = color, glow = 14, life = 0.5; + -- minpos = ofs({ x = 0.0, z = 0.6, y = height - 0.7}); + -- maxpos = ofs({ x = 0.4, z = 0.2, y = height - 0.3}); + pos = ofs(vector.new(0.2, height - 0.5, 0.4)), radius = 0.2; + vel = vector.new(0,0,0.8); + velrange = 0.7, acc = vector.new(0,0.5,0); + minsize = 5, maxsize = 10; attached = caster; - -- texture = L.image('sorcery_spark.png'):multiply(color):render(); - texture = sorcery.vfx.glowspark(color):render(); - minpos = ofs({ x = 0.0, z = 0.6, y = height*0.7}); - maxpos = ofs({ x = 0.4, z = 0.2, y = height*1.1}); - minvel = { x = -0.5, z = -0.5, y = -0.5}; - maxvel = { x = 0.5, z = 0.5, y = 0.5}; - minacc = { x = 0.0, z = 0.0, y = 0.5}; - maxacc = { x = 0.0, z = 0.0, y = 0.5}; - minsize = 0.4, maxsize = 0.8; - minexptime = 1, maxexptime = 1; - glow = 14; - animation = { - type = 'vertical_frames'; - aspect_w = 16; - aspect_h = 16; - length = 1.1; - }; + } + sorcery.vfx.show { + amount = 140 * strength, time = 0.3 + (duration or 1.5); + kind = 'sputter', color = color, glow = 14, life = 3; + pos = ofs(vector.new(0.2, height - 0.5, 0.5)), radius = 0.3; + vel = vector.new(0,0,1.2); + velrange = 0.4, acc = vector.new(0,0.5,-0.7); + minsize = 0.05, maxsize = 0.4; + attached = caster; } + -- minetest.add_particlespawner { + -- amount = 40 * strength; + -- time = duration or 1.5; + -- attached = caster; + -- -- texture = L.image('sorcery_spark.png'):multiply(color):render(); + -- texture = sorcery.vfx.glowspark(color):render(); + -- minvel = { x = -0.5, z = -0.5, y = -0.5}; + -- maxvel = { x = 0.5, z = 0.5, y = 0.5}; + -- minacc = { x = 0.0, z = 0.0, y = 0.5}; + -- maxacc = { x = 0.0, z = 0.0, y = 0.5}; + -- minsize = 0.2, maxsize = 1.5; + -- minexptime = 1, maxexptime = 1; + -- glow = 14; + -- animation = { + -- type = 'vertical_frames'; + -- aspect_w = 16; + -- aspect_h = 16; + -- length = 1.1; + -- }; + -- } end sorcery.vfx.body_sparkle = function(body,color,str,pos) local tex = L.image('sorcery_spark.png') local pi = tex:blit(tex:multiply(color)):render()