sorcery  Diff

Differences From Artifact [ab3b6e4e1b]:

To Artifact [0a84465667]:


     6      6   		style = 'sparkle';
     7      7   		desc = "A potion that amps up your body's natural\nhealing abilities, causing you to heal rapidly\neven if you're starving";
     8      8   		infusion = 'sorcery:blood';
     9      9   		basis = 'sorcery:potion_luminous';
    10     10   		duration = function(self,meta)
    11     11   			return 10 + meta:get_int('duration')*2
    12     12   		end;
           13  +		quals = { force = true, duration = true };
    13     14   		effect = function(self, user, proto)
    14     15   			local meta = self:get_meta()
    15     16   			local force = 1 + meta:get_int('force')
    16     17   			late.new_effect(user, {
    17     18   				duration = proto:duration(meta);
    18     19   				raise = 4; fall = 4;
    19     20   				impacts = {
................................................................................
    27     28   		color = {79,228,243}; style = 'sparkle';
    28     29   		basis = 'sorcery:potion_luminous';
    29     30   		desc = "Conserve your precious supply of oxygen when diving down into the ocean's depths";
    30     31   		infusion = 'sorcery:extract_kelp';
    31     32   		duration = function(self,meta)
    32     33   			return 20 + meta:get_int('duration')*30
    33     34   		end;
           35  +		quals = { force = true, duration = true };
    34     36   		effect = function(self,user,proto)
    35     37   			local meta = self:get_meta()
    36     38   			local force = 1 + 2 * (meta:get_int('force'))
    37     39   			late.new_effect(user, {
    38     40   				duration = proto:duration(meta);
    39     41   				raise = 2; fall = 5;
    40     42   				impacts = {
................................................................................
    43     45   			})
    44     46   		end;
    45     47   	};
    46     48   	heal = {
    47     49   		name = 'Healing';
    48     50   		color = {243,44,58};
    49     51   		style = 'sparkle';
    50         -		no_duration = true;
           52  +		quals = { force = true };
    51     53   		desc = 'This blood-red liquid glitters with an enchantment that rapidly knits torn flesh and broken bones';
    52     54   		infusion = 'sorcery:oil_sanguine';
    53     55   		basis = 'sorcery:potion_luminous';
    54     56   		effect = function(self, user)
    55     57   			local meta = self:get_meta()
    56     58   			user:set_hp(user:get_hp() + (2 * (2 + meta:get_int('force'))))
    57     59   		end;
................................................................................
    61     63   
    62     64   	stealth = {
    63     65   		name = 'Stealth';
    64     66   		color = {184,106,224}; style = 'sparkle';
    65     67   		infusion = 'default:coal_lump';
    66     68   		basis = 'sorcery:potion_soft';
    67     69   		desc = 'Drinking this dark, swirling draught will shelter you from the power of mortal perception for a time, even rendering you entirely invisible at full strength.';
           70  +		quals = { force = true, duration = true };
    68     71   		duration = function(self,meta)
    69     72   			return 30 + meta:get_int('duration')*30
    70     73   		end;
    71     74   		effect = function(self,user,proto)
    72     75   			local meta = self:get_meta()
    73     76   			local force = 1 + 1 * (meta:get_int('force'))
    74     77   			local opacity = 1.0 - (1.0 * (force / 4)) 
................................................................................
    85     88   	nightsight = {
    86     89   		name = 'Nightsight';
    87     90   		color = {91,0,200}; style = 'sparkle';
    88     91   		desc = 'While this potion flows through your veins, your vision will be strengthened against the darkness of the night';
    89     92   		maxforce = 3;
    90     93   		infusion = 'sorcery:oil_dawn';
    91     94   		basis = 'sorcery:potion_soft';
           95  +		quals = { force = true, duration = true };
    92     96   		duration = function(self,meta)
    93     97   			return 50 + meta:get_int('duration')*70
    94     98   		end;
    95     99   		effect = function(self,user,proto)
    96    100   			--TODO ensure it can only be drunk at night
    97    101   			--TODO ensure it can't last more than one night
    98    102   			local meta = self:get_meta()
................................................................................
   108    112   	};
   109    113   	antigravity = {
   110    114   		name = 'Antigravity';
   111    115   		color = {240,59,255}; style = 'sparkle';
   112    116   		desc = 'Loosen the crushing grip of the earth upon your tender mortal form with a few sips from this glittering phial';
   113    117   		infusion = 'sorcery:oil_stone';
   114    118   		basis = 'sorcery:potion_soft';
          119  +		quals = { force = true, duration = true };
   115    120   		duration = function(self,meta)
   116    121   			return 20 + meta:get_int('duration')*25
   117    122   		end;
   118    123   		effect = function(self,user,proto)
   119    124   			local meta = self:get_meta()
   120    125   			local force = 1 - 0.3 * (meta:get_int('force') + 1)
   121    126   			late.new_effect(user, {
................................................................................
   129    134   	};
   130    135   	gale = {
   131    136   		name = 'Gale';
   132    137   		color = {187,176,203};
   133    138   		desc = 'Move and strike with the speed of a hurricane as this enchanted fluid courses through your veins';
   134    139   		infusion = 'sorcery:grease_storm';
   135    140   		basis = 'sorcery:potion_soft';
          141  +		quals = { force = true, duration = true };
   136    142   		duration = function(self,meta)
   137    143   			return 10 + meta:get_int('duration')*15
   138    144   		end;
   139    145   		effect = function(self,user,proto)
   140    146   			local meta = self:get_meta()
   141    147   			local force = 2 + 0.7 * (meta:get_int('force'))
   142    148   			late.new_effect(user, {
................................................................................
   151    157   	obsidian = {
   152    158   		name = 'Obsidian';
   153    159   		infusion = 'default:obsidian_shard';
   154    160   		color = {76,0,121}; style = 'sparkle';
   155    161   		desc = 'Walk untroubled through volleys of arrows and maelstroms of swinging blades, for all will batter uselessly against skin protected by spellwork mightier than the doughtiest armor';
   156    162   		infusion = 'default:obsidian_shard';
   157    163   		basis = 'sorcery:potion_luminous';
   158         -		no_force = true;
          164  +		quals = { duration = true };
   159    165   		duration = function(self,meta)
   160    166   			return 5 + meta:get_int('duration')*7
   161    167   		end;
   162    168   	};
   163    169   	lavabreathing = {
   164    170   		name = 'Lavabreathing';
   165    171   		color = {243,118,79}; style = 'sparkle'; glow = 12;
   166    172   		basis = 'sorcery:potion_soft';
   167    173   		desc = "Wade through seas of roiling lava as easily as though it were but a babbling brook";
          174  +		quals = { duration = true };
   168    175   	};
   169    176   	-- mighty = {
   170    177   	-- 	name = 'Mighty';
   171    178   	-- 	color = {255,0,119}; style = 'sparkle'; glow = 5;
   172    179   	-- 	infusion = 'sorcery:grease_war';
   173    180   	-- 	basis = 'sorcery:potion_soft';
   174    181   	-- 	desc = 'Amplify the power of your blows and crack steel armor with the force of your bare hands';
   175    182   	-- };
   176    183   	resilient = {
   177    184   		name = 'Resilient';
   178    185   		color = {124,124,124}; style = 'dull';
   179    186   		basis = 'sorcery:potion_soft';
   180    187   		desc = 'Withstand greater damage and hold your ground even in face of tremendous force';
          188  +		quals = { force = true, duration = true };
   181    189   	};
   182    190   	hover = {
   183    191   		name = 'Hover';
   184    192   		color = {164,252,55}; style = 'sparkle';
   185    193   		desc = 'Rise into the air for a time and stay there until the potion wears off';
   186    194   		basis = 'sorcery:potion_soft';
          195  +		quals = { force = true, duration = true };
   187    196   	}; 
   188    197   	flight = {
   189    198   		name = 'Flight';
   190    199   		color = {143,35,255}; style = 'sparkle';
   191    200   		desc = 'Free yourself totally from the shackles of gravity and soar through the air however you should will';
   192    201   		basis = 'sorcery:potion_soft';
   193    202   		infusion = 'sorcery:grease_lift';
   194         -		no_force = true;
          203  +		quals = { duration = true };
   195    204   		duration = function(self,meta)
   196    205   			return 40 + meta:get_int('duration')*55
   197    206   		end;
   198    207   		effect = function(self,user,proto)
   199    208   			late.new_effect(user, {
   200    209   				duration = proto:duration(self:get_meta());
   201    210   				impacts = {
................................................................................
   206    215   	};
   207    216   	leap = {
   208    217   		name = 'Leap';
   209    218   		color = {164,252,55};
   210    219   		desc = 'Soar high into the air each time you jump (but may risk damage if used without a Feather Potion)';
   211    220   		infusion = 'sorcery:oil_wind';
   212    221   		basis = 'sorcery:potion_soft';
          222  +		quals = { force = true, duration = true };
   213    223   		duration = function(self,meta)
   214    224   			 return 5 + meta:get_int('duration')*7
   215    225   		end;
   216    226   		effect = function(self,user,proto)
   217    227   			local meta = self:get_meta()
   218    228   			local force = 2 + (0.5 * meta:get_int('force'))
   219    229   			late.new_effect(user, {