summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/ApocalypseEffects.c
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/System.c4g/ApocalypseEffects.c')
-rw-r--r--TemplePushing.c4s/System.c4g/ApocalypseEffects.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/ApocalypseEffects.c b/TemplePushing.c4s/System.c4g/ApocalypseEffects.c
new file mode 100644
index 0000000..cefa608
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/ApocalypseEffects.c
@@ -0,0 +1,78 @@
+/*-- Apocalypse Effects --*/
+
+#strict 2
+
+global func FxCreateTeraFlintsTimer()
+{
+ for (var i = 0; i < GetPlayerCount(); ++i)
+ {
+ var clonk = GetCrew(GetPlayerByIndex(i));
+ if (!clonk) continue;
+
+ var teraflint = CreateObject(EFLN, 0, 0, NO_OWNER);
+ if (!clonk->Collect(teraflint)) teraflint->RemoveObject();
+ }
+
+ 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 <= 0)
+ {
+ color = 0;
+ 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() - 20) clonk->SetPosition(clonk->GetX() + RandomX(-10, 10), 0);
+ }
+
+ return 1;
+} \ No newline at end of file