File: Decay.c

package info (click to toggle)
openclonk 8.1-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 169,520 kB
  • sloc: cpp: 180,479; ansic: 108,988; xml: 31,371; python: 1,223; php: 767; makefile: 145; sh: 101; javascript: 34
file content (31 lines) | stat: -rw-r--r-- 689 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
	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;
}