Buffs
Info
Dependencies:
 - PermMem
 - FrameFunctions
 Implementation:
  Buffs.d on GitHub
This package allows you to easily create status effects that can affect any NPC. Status effects on the hero are displayed graphically in a bar.
Initialization
Initialize with LeGo_Buffs flag. 
Warning
This package is still experimental and not included in the LeGo_All initialization flag.
Functions
Buff_Apply
 Buff_Apply
Applies a status effect to an NPC.
-  
var C_NPC npc
NPC to be affected by this effect -  
var int buff
The instance of the effect to apply to the NPC 
Return value
The function returns the handle of the buff, which was just generated.
Buff_ApplyUnique
 Buff_ApplyUnique
Buff_Apply, but nothing happens if a status effect of that kind is already on the NPC. 
-  
var C_NPC npc
NPC to be affected by this effect -  
var int buff
The instance of the effect to apply to the NPC 
Return value
The function returns the handle of the buff, which was just generated or 0 if the buff is already applied on the NPC.
Buff_ApplyOrRefresh
 Buff_ApplyOrRefresh
Buff_Apply, but if a status effect of this type is already affecting the NPC, the duration will be reset. 
-  
var C_NPC npc
NPC to be affected by this effect -  
var int buff
The instance of the effect to apply to the NPC 
Return value
The function returns the handle of the buff, which was just generated or refreshed.
Buff_Refresh
 Buff_Refresh
Resets the duration of the buff.
var int buffHandle
Handle of the buff to refresh
Buff_Remove
 Buff_Remove
Removes the buff from the all NPCs.
var int buffHandle
Handle of the buff to remove
Buff_RemoveAll
 Buff_RemoveAll
Removes the buffs form the NPC.
var C_NPC npc
NPC whose buff should be removed
Buff_GetNpc
 Buff_GetNpc
Returns a pointer to the NPC, which is affected by the buff.
var int buffHandle
Handle of the buff
Return value
The function returns a pointer to the NPC, which is affected by the buff.
Buff_Has
 Buff_Has
Checks if the NPC already has an effect applied.
-  
var C_NPC npc
Checked NPC -  
var int buff
The instance of the effect 
Return value
The function returns TRUE if the NPC has an effect applied. FALSE is returned otherwise.
SAVE_GetFuncID
 SAVE_GetFuncID
Same as MEM_GetFuncID but gets the current instance. 
var func f
 Function whose ID is got
Return value
The function returns the ID of given function.
lCBuff class
The buffs package implements an lCBuff class, which looks like this:
Examples
Delayed poison
Damage should also be added:
SAVE_GetFuncID instead of MEM_GetFuncID. For example, if this buff is now applied to the hero, by calling Buff_Apply(hero, deadly_poison), he loses a total of 30 HP over 10 seconds.