diff options
Diffstat (limited to 'TemplePushing.c4s/System.c4g/ApocalypseEffects.c')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/ApocalypseEffects.c | 78 |
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 |
