forked from Mirrors/openclonk
global func Decay: some cleanups & added 'delay' parameter for decay speed
parent
9dca94a6b8
commit
63655f2763
|
@ -1,26 +1,28 @@
|
|||
/**
|
||||
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.
|
||||
*/
|
||||
|
||||
global func Decay()
|
||||
global func Decay(int delay)
|
||||
{
|
||||
AddEffect("Decaying", this, 1, 500);
|
||||
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", 9000 + Random(300));
|
||||
ScheduleCall(mos, "RemoveObject", Max(0, GetCon() - 20) * delay + Random(300));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
global func FxDecayingTimer(object target)
|
||||
global func FxDecayingTimer(object target, effect fx, int time)
|
||||
{
|
||||
if (target->GetCon() < 20)
|
||||
target->RemoveObject();
|
||||
else
|
||||
target->DoCon(-5);
|
||||
return true;
|
||||
target->DoCon(-1);
|
||||
return FX_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue