summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/ApocalypseEffects.c
blob: 45a8ecfbc745d3f6b53e42589f19875a47a0b8ce (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*-- Apocalyptic Mode effects --*/

#strict 2

global func FxCreateTeraFlintsTimer()
{
	for (var i = 0; i < GetPlayerCount(); ++i)
	{
		var clonk = GetCrew(GetPlayerByIndex(i));
		if (!clonk) continue;

		if (clonk->ContentsCount(EFLN) < 3) clonk->CreateContents(EFLN);
	}

	return 1;
}

global func FxShakeScreenTimer()
{
	ShakeViewPort(10);
	return 1;
}

global func FxSkyAdjustStart(object target, int effectNumber)
{
	EffectVar(0, 0, effectNumber) = 255;
	EffectVar(1, 0, effectNumber) = 1;
	return 1;
}

global func FxSkyAdjustTimer(object target, int effectNumber)
{
	var color = EffectVar(0, 0, effectNumber);
	var decrease = EffectVar(1, 0, effectNumber);

	// Increase/decrease color value
	if (decrease)
	{
		--color;
	}
	else
	{
		++color;
	}

	// Switch direction?
	if (color <= 150)
	{
		color = 150;
		decrease = false;
	}
	else if (color >= 255)
	{
		color = 255;
		decrease = true;
	}

	// Apply color
	SetSkyAdjust(RGB(255, color / 2, color / 4), RGB(128, color / 2, color / 4));
	SetGamma(RGB(2, 0, 0), RGB(128, color / 2, color / 4), RGB(180, color /2 , color / 4));
	
	EffectVar(0, 0, effectNumber) = color;
	EffectVar(1, 0, effectNumber) = decrease;

	return 1;
}

global func FxBottomTimer()
{
	for (var i = 0; i < GetPlayerCount(); ++i)
	{
		var clonk = GetCrew(GetPlayerByIndex(i));
		if (clonk && clonk->GetY() >= LandscapeHeight() - 15) clonk->SetPosition(clonk->GetX() + RandomX(-1, 1), 0);
	}
	
	return 1;
}