// TMW-2 Script.
// Evol scripts.
// Author:
// Reid
// Jesusalva
// Description:
// Legacy Healing System
//
// Variables:
// @delay Second of healing
// @min Min amount of healing
// @max Max amount of healing
//
// *getequipoption(EQI_HEAD_TOP,1,168); → Heal Bonus (should be first bonus on Chef Hat)
// ItHeal(delay, min, {max=min})
function script ItHeal {
.@delay=getarg(0, @delay);
.@min=getarg(1, @min);
.@max=getarg(2, (@max ? @max : .@min));
if (.@delay <= 0) {
Exception("Invalid legacy healing item, deleting without healing effect.");
end;
}
// Decide the healing bonus type. We have four types: S, L, G and M
// By default, we use 'S'
.@skill = SC_S_LIFEPOTION;
// minimum between @min and bVit / 2 * BaseLevel / 10
//@min = min(@max, readparam(bVit) * BaseLevel / 20);
// Vitality no longer applies to these
@val1 = rand2(.@min, .@max);
.@delay *= 1000; // Put the delay in ms
// We now have @val1 (new effect), @delay (new delay)
// But do we have .@v and .@d (old effect and delay)?
.@v=getstatus(.@skill, 1);
.@d=getstatus(.@skill, 4) * 1000;
// If there WAS an effect previously, get ponderate average
// Note: never use double-precision ponderate averages
if (.@v > 0) {
@val1=ponderate_avg(@val1, .@delay, .@v, .@d);
// Overflow and Underflow protection
if (.@delay+.@d < .@delay*5 && .@d > 0)
.@delay=.@delay+.@d;
//.@delay=ponderate_avg(.@delay, @val1, .@d, .@v);
}
// Apply the effect and finish
sc_end .@skill;
sc_start2 .@skill, .@delay, @val1, 1;
// @val1 must be preserved for cross-reading
@delay=0;
@min=0;
@max=0;
// @val1=0;
return;
}
- script legacy_heal -1,{
OnUse:
if (@delay <= 0) {
Exception("Invalid legacy healing item, deleting without healing effect.");
end;
}
ItHeal(@delay, @min, @max);
end;
}