sorcery  Diff

Differences From Artifact [fc9658990d]:

To Artifact [a732e194a1]:


     1      1   local L = sorcery.lib
     2      2   return {
            3  +	magic = {
            4  +		name = "Sulavri Tefrusir" --[[
            5  +			Sulavri the Blind is the husband of Irix Irimentari. Elerian legend tells that he fell in love with Irix when she invented alchemy, and they wed, giving birth to the human race. Sulavri is Lord of the Leylines, Father of Man and Magic, and his domain is that of sorcery, physics, the aether, and all the hidden arts besides.
            6  +
            7  +			legend tells that a foolish mortal king once conspired to steal away Sulavri's staff, knowing it to be the apex of the sorcerer's art and desirous of its might. wise Sulavri however saw the warnings on the wind and in the dances of the birds, and so on the fateful day he fashioned an imitation staff that held no power at all, his wife concealing his true staff by turning into a shawl and casting it about her shoulders. sure enough, when Sulavri laid down to rest at his favored mountain stream, a master thief in the employ of the king stole away the false staff, bringing it to his master. at first delighted, the king found the staff would not answer his will, and soon went mad seeking to unlock the secrets of its power.
            8  +
            9  +			Sulavri is the patron of elders, men, and Wand-Working.
           10  +		]];
           11  +		laziness = 7;
           12  +		generosity = 4;
           13  +		stinginess = 1;
           14  +		color = {255,34,123};
           15  +		idol = {
           16  +			desc = 'Mystic Idol';
           17  +			width = 0.7;
           18  +			height = 1;
           19  +			tex = {
           20  +				"default_obsidian.png";
           21  +				"default_gold_block.png";
           22  +				"default_copper_block.png";
           23  +				"default_tin_block.png^[brighten";
           24  +				"default_bronze_block.png";
           25  +			};
           26  +			craft = {
           27  +				{'default:bronze_ingot','default:gold_ingot','default:obsidian_shard'};
           28  +				{'sorcery:fragment_copper','sorcery:silver_ingot','sorcery:fragment_copper'};
           29  +				{'default:obsidian_shard','stairs:slab_goldblock','default:bronze_ingot'};
           30  +			};
           31  +		};
           32  +		bless = {
           33  +			potions = {};
           34  +			tools = {};
           35  +		};
           36  +		gifts = {};
           37  +		consecrate = {
           38  +			["sorcery:dagger"] = {17, "sorcery:dagger_consecrated"};
           39  +			["sorcery:oil_mystic"] = {9, "sorcery:oil_purifying"};
           40  +			["sorcery:potion_water"] = {4, "sorcery:holy_water"};
           41  +			["default:paper"] = function(ctx)
           42  +				local stack = ItemStack('sorcery:recipe')
           43  +				local mode = select(2,L.tbl.pick{'cook','craft','infuse','grind','enchant'})
           44  +				sorcery.cookbook.setrecipe(stack, mode, nil, {
           45  +					pred = function(c)
           46  +						local me = ctx.god
           47  +						if mode == 'enchant' or
           48  +							minetest.get_item_group(c.item, 'sorcery_magical') ~= 0 or
           49  +							minetest.get_item_group(c.item, 'sorcery_magitech') ~= 0 or
           50  +							minetest.get_item_group(c.item, 'sorcery_ley_device') ~= 0 or
           51  +							minetest.get_item_group(c.item, 'sorcery_tech') ~= 0 or
           52  +							minetest.get_item_group(c.item, 'crafttool') ~= 0 or
           53  +							me.sacrifice [c.item] or
           54  +							me.consecrate[c.item]
           55  +								then return true end
           56  +					end;
           57  +				})
           58  +				return 1, stack
           59  +			end;
           60  +			-- ["default:gold_ingot"] = {15, "sorcery:holy_token_magic"};
           61  +		};
           62  +		sacrifice = {
           63  +			['sorcery:essence_frost'] = 25;
           64  +			['sorcery:essence_flame'] = 25;
           65  +			['sorcery:essence_force'] = 30;
           66  +
           67  +			['sorcery:gem_luxite'] = 6;
           68  +			['sorcery:gem_ruby'] = 10;
           69  +			['sorcery:gem_amethyst'] = 16;
           70  +			['sorcery:gem_sapphire'] = 25;
           71  +			['sorcery:gem_emerald'] = 34;
           72  +			['default:mese_crystal'] = 42;
           73  +			['default:diamond'] = 50;
           74  +
           75  +			['sorcery:gem_luxite_amulet'] = 20;
           76  +			['sorcery:gem_ruby_amulet'] = 35;
           77  +			['sorcery:gem_amethyst_amulet'] = 48;
           78  +			['sorcery:gem_sapphire_amulet'] = 56;
           79  +			['sorcery:gem_emerald_amulet'] = 63;
           80  +			['sorcery:gem_mese_amulet'] = 78;
           81  +			['sorcery:gem_diamond_amulet'] = 91;
           82  +
           83  +			['sorcery:oil_mystic'] = 2;
           84  +			['sorcery:oil_berry'] = 4;
           85  +			['sorcery:oil_wind'] = 6;
           86  +			['sorcery:oil_bleak'] = 6;
           87  +			['sorcery:oil_stone'] = 7;
           88  +			['sorcery:oil_mushroom'] = 8;
           89  +			['sorcery:oil_flame'] = 8;
           90  +			['sorcery:oil_dawn'] = 11;
           91  +			['sorcery:oil_luscious'] = 12;
           92  +			['sorcery:oil_luck'] = 16;
           93  +			['sorcery:oil_sagnuine'] = -15;
           94  +
           95  +			['sorcery:grease_fog'] = 17;
           96  +			['sorcery:grease_pine'] = 18;
           97  +			['sorcery:grease_storm'] = 20;
           98  +			['sorcery:grease_whisper'] = 21;
           99  +			['sorcery:grease_thunder'] = 22;
          100  +			['sorcery:grease_enchanting'] = 24;
          101  +			['sorcery:grease_lift'] = 32;
          102  +			['sorcery:grease_war'] = -5;
          103  +
          104  +			['sorcery:warding_plate'] = 6;
          105  +			['sorcery:ley_puncture'] = 8;
          106  +			['sorcery:pulse_rectifier'] = 8;
          107  +			['sorcery:current_felicitator'] = 12;
          108  +			['sorcery:infuser_concentrator'] = 15;
          109  +			['sorcery:infuser_tube'] = 23;
          110  +			['sorcery:inverter_coil'] = 31;
          111  +			['sorcery:inversion_matrix'] = 70;
          112  +			['sorcery:inferno_crystal'] = 75;
          113  +			['sorcery:beam_generator'] = 83;
          114  +			['sorcery:field_emitter'] = 92;
          115  +			['sorcery:catalytic_converter'] = 95;
          116  +			['sorcery:gravity_manipulator'] = 97;
          117  +
          118  +			['sorcery:core_syncretic'] = 64;
          119  +			['sorcery:core_mandatic'] = 53;
          120  +			['sorcery:core_praxic'] = 72;
          121  +			['sorcery:core_counterpraxic'] = 31;
          122  +
          123  +			['sorcery:sap'] = 1;
          124  +			['sorcery:sap_apple'] = 2;
          125  +			['sorcery:sap_aspen'] = 3;
          126  +			['sorcery:sap_pine'] = 3;
          127  +			['sorcery:sap_jungle'] = 4;
          128  +			['sorcery:sap_acacia'] = 5;
          129  +			['sorcery:blood'] = -5;
          130  +		};
          131  +	};
     3    132   	harvest = {
     4    133   		name = "Irix Irimentari" --[[
     5         -			an old Elerian harvest goddess, Irix Irimentari has watched vigilantly over the fields of her worshippers since before the Second Age. she favors alcoholic beverages as tribute, and has been known to perform blessings for sorcerers when sufficiently inebriated. she harbors a particular hatred of daemons and those who spill the blood of farmers.
          134  +			an old Elerian harvest goddess, Irix the Bountiful has watched vigilantly over the fields of her worshippers since before the Second Age. she favors alcoholic beverages as tribute, and has been known to perform blessings for sorcerers when sufficiently inebriated. she harbors a particular hatred of daemons and those who spill the blood of farmers.
     6    135   
     7    136   			legend says that a barbarian lord high on opium once wandered into a temple of Irix and left the severed head of a local shepherd on the her altar. this desecration so enraged the goddess that the barbarian's entire tribe soon starved horribly to death, their crops refusing to take root, and their stolen breads turning to ash in their mouths.
     8    137   
     9         -			in the mystic arts, she is the patron of Alchemy. it is said that Irix
    10         -			Irimentari herself invented alchemy when she brewed the first mead.
          138  +			Irix is the patron of maidens, mothers, and Alchemy. it is said that Irix Irimentari herself invented alchemy when she brewed the first mead.
    11    139   		]];
    12    140   		laziness = 5;
    13    141   		stinginess = 3;
    14    142   		generosity = 10;
    15    143   		color = {214, 255, 146};
    16    144   		idol = {
    17    145   			desc = "Harvest Idol";
    18         -			width = 0.5;
          146  +			width = 0.7;
    19    147   			height = 1;
    20    148   			tex = {
    21    149   				"default_grass.png",
    22    150   				"default_gold_block.png",
    23    151   				"default_copper_block.png",
    24    152   				"default_tin_block.png"
    25    153   			};
          154  +			craft = {
          155  +				{'sorcery:fragment_tin','default:fern_1','sorcery:fragment_tin'};
          156  +				{'sorcery:fragment_copper','default:gold_ingot','sorcery:fragment_copper'};
          157  +				{'','stairs:slab_goldblock',''};
          158  +			};
    26    159   		};
    27    160   		bless = {
    28    161   			potions = {};
    29    162   			tools = {};
    30    163   		};
    31    164   		consecrate = {
    32    165   			["flowerpot:empty"] = {2, {
................................................................................
    48    181   					pred = function(c)
    49    182   						local me = ctx.god
    50    183   						if c.mod == 'farming' or
    51    184   							minetest.get_item_group(c.item, 'sorcery_potion') ~= 0 or
    52    185   							minetest.get_item_group(c.item, 'sorcery_oil') ~= 0 or
    53    186   							minetest.get_item_group(c.item, 'sorcery_grease') ~= 0 or
    54    187   							minetest.get_item_group(c.item, 'sorcery_extract') ~= 0 or
          188  +							minetest.get_item_group(c.item, 'sorcery_container') ~= 0 or
          189  +							minetest.get_item_group(c.item, 'plant') ~= 0 or
          190  +							minetest.get_item_group(c.item, 'flora') ~= 0 or
          191  +							minetest.get_item_group(c.item, 'flowerpot') ~= 0 or
    55    192   							me.sacrifice [c.item] or
    56         -							me.consecrate[c.item] then
    57         -							print(' !! accepted')
    58         -							return true end
    59         -						print(' -- rejected')
          193  +							me.consecrate[c.item]
          194  +								then return true end
    60    195   					end;
    61    196   				})
    62    197   				return 1, stack
    63    198   			end;
    64    199   			-- ["default:steel_ingot"] = {15, "sorcery:holy_token_harvest"};
    65    200   		};
    66    201   		sacrifice = {