forked from Mirrors/openclonk
32 lines
689 B
C
32 lines
689 B
C
/**
|
|
Decay.c
|
|
Animals can use Decay() in their Death() function so they will slowly decay and spawn a few temporary flies.
|
|
The delay parameter specifies the amount of frames before decaying one Con.
|
|
|
|
@author
|
|
*/
|
|
|
|
global func Decay(int delay)
|
|
{
|
|
delay = delay ?? 100;
|
|
AddEffect("Decaying", this, 1, delay);
|
|
if (!GBackSemiSolid())
|
|
{
|
|
var rnd = Random(4);
|
|
for (var i = 0; i < rnd; i++)
|
|
{
|
|
var mos = CreateObject(Mosquito);
|
|
ScheduleCall(mos, "RemoveObject", Max(0, GetCon() - 20) * delay + Random(300));
|
|
}
|
|
}
|
|
}
|
|
|
|
global func FxDecayingTimer(object target, effect fx, int time)
|
|
{
|
|
if (target->GetCon() < 20)
|
|
target->RemoveObject();
|
|
else
|
|
target->DoCon(-1);
|
|
return FX_OK;
|
|
}
|