diff options
| author | Mittendrein Markus <maxmitti@gmx.net> | 2016-02-14 18:19:44 +0100 |
|---|---|---|
| committer | Mittendrein Markus <maxmitti@gmx.net> | 2016-02-14 18:19:44 +0100 |
| commit | 01f5e944fd7b124f5ac4f37e127345feaee44624 (patch) | |
| tree | fe22a10179d5c2afe28ff68228e102c940e478cb /TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c | |
| parent | 50ffbf0f455f1ff34e98f0bdac3b7a9bf09d9192 (diff) | |
| download | tempelschubsen-01f5e944fd7b124f5ac4f37e127345feaee44624.tar.gz tempelschubsen-01f5e944fd7b124f5ac4f37e127345feaee44624.zip | |
extract BigRock.c4d
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c')
| -rw-r--r-- | TemplePushing.c4s/Misc.c4d/BigRock.c4d/Script.c | 120 |
1 files changed, 120 insertions, 0 deletions
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);
+}
|
