From 01f5e944fd7b124f5ac4f37e127345feaee44624 Mon Sep 17 00:00:00 2001 From: Mittendrein Markus Date: Sun, 14 Feb 2016 18:19:44 +0100 Subject: extract BigRock.c4d --- TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c | 120 ++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c (limited to 'TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c') diff --git a/TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c new file mode 100644 index 0000000..fc1ceea --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c @@ -0,0 +1,120 @@ +/*-- Großer Stein --*/ + +#strict + +protected func Initialize() +{ + Roll(); + //if (!Random(3)) + if(GetCon()==100) DoCon(-80); + return(1); +} + +protected func Roll() +{ + var rnd = Random(3); + if (rnd == 0) SetAction("Rolling1"); + if (rnd == 1) SetAction("Rolling2"); + if (rnd == 2) SetAction("Rolling3"); + return(1); +} + +protected func ContactTop() +{ + SetXDir(5 - Random(11)); + if (!Random(3)) Destruct(); + Crash(-4,-14); + Crash(0,-16); + Crash(4,-14); + ShakeViewPort(GetCon() / 5, this()); + Roll(); + return(1); +} + +protected func ContactBottom() +{ + SetXDir(50 - Random(101)); + SetYDir(-45 - Random(10)); + Crash(-4,14); + Crash(0,16); + Crash(4,14); + Roll(); + ShakeViewPort(GetCon() / 5, this()); + if (!Random(10)) CrashFree(); + if (!Random(8)) Destruct(); + return(1); +} + +protected func ContactLeft() +{ + SetXDir(10 + Random(10)); + SetYDir(-40 - Random(10)); + Crash(-14,-4); + Crash(-16,0); + Crash(-14,4); + Roll(); + ShakeViewPort(GetCon() / 5, this()); + if (!Random(5)) Destruct(); + return(1); +} + +protected func ContactRight() +{ + SetXDir(-10 - Random(10)); + SetYDir(-40 - Random(10)); + Crash(14,-4); + Crash(16,0); + Crash(14,4); + Roll(); + ShakeViewPort(GetCon() / 5, this()); + if (!Random(5)) Destruct(); + return(1); +} + +protected func Crash(x, y) +{ + Sound("RockHit*"); + if (GetCon() < 25) return(0); + if (!Random(4)) BlastObjects(GetX() + x, GetY() + y, 3, Contained()); + if (!Random(4)) BlastObjects(GetX() + x, GetY() + y, 2, Contained()); + if (!Random(75)) Explode(Random(2) + 3, CreateObject(ROCK, x, y, -1)); + return(1); +} + +protected func Destruct() +{ + var i; + if(GetCon()>25) while (++i < 4) CastSplitRock(); + Sound("RockBreak*"); + Smoke(Random(11) - 5, Random(11) - 5, Random(25)); + Smoke(Random(11) - 5, Random(11) - 5, Random(25)); + Smoke(Random(11) - 5, Random(11) - 5, Random(25)); + Smoke(Random(11) - 5, Random(11) - 5, Random(25)); + RemoveObject(); + return(1); +} + +protected func DoSink() +{ + if(GetYDir()<0) SetYDir(0); +} + +protected func CastSplitRock() +{ + return(1); + var pRock = CreateObject(BIRK, 0, 0, -1); + SetXDir(-50 + Random(101), pRock); + SetYDir(-60 + Random(80), pRock); + SetCon(GetCon() - 5, pRock); +// AddEffect("IntArrowVanish",pRock,1,3,0,MGBW); + return(1); +} + +protected func CrashFree() +{ + ShakeFree(GetX() - 50 + Random(100), GetY() + Random(120), GetCon()/5); + ShakeFree(GetX() - 50 + Random(100), GetY() + Random(120), GetCon()/5); + ShakeFree(GetX() - 50 + Random(100), GetY() + Random(120), GetCon()/5); + if (!Random(3)) Sound("Earthquake"); + return(1); +} -- cgit v1.2.3-54-g00ecf