summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/Freeze.c
diff options
context:
space:
mode:
authorJan <>2015-07-10 18:11:22 +0200
committerJan <_>2015-07-10 18:47:01 +0200
commitf1ece16c08d8c01e1d49a25f0314a96c021e73cb (patch)
tree9bc9f547f2524dee8e62f168f317df465a6cbcdd /TemplePushing.c4s/System.c4g/Freeze.c
parent80b15646d73587f4e15a2897314692b58aa1a47f (diff)
downloadtempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.tar.gz
tempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.zip
r0.921
Diffstat (limited to 'TemplePushing.c4s/System.c4g/Freeze.c')
-rw-r--r--TemplePushing.c4s/System.c4g/Freeze.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/Freeze.c b/TemplePushing.c4s/System.c4g/Freeze.c
new file mode 100644
index 0000000..d10457e
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Freeze.c
@@ -0,0 +1,36 @@
+/*-- Freeze --*/
+
+#strict
+
+#appendto FREZ
+
+
+global func FxFreezeTimer(pTarget, iEffectNumber, iEffectTime)
+{
+ // In Lava schwimmend? Dann schnell auftauen (nur für Monster und andere nicht brennbare Lebewesen wichtig)
+ if(GetMaterialVal("Incindiary", "Material", pTarget->GetMaterial()))
+ return -1;
+ // Partikeleffekte für den betroffenen
+ var id = GetID(pTarget);
+ CreateParticle("NoGravSpark",GetX(pTarget)+RandomX(-GetDefWidth(id)/2, GetDefWidth(id)/2),GetY(pTarget)+RandomX(-GetDefHeight(id)/2, GetDefHeight(id)/2),0,RandomX(-2, -4),RandomX(18,28),RGB(10,120,210), pTarget);
+ CreateParticle("Freeze",GetX(pTarget),GetY(pTarget),0,0,EffectVar(1, pTarget, iEffectNumber)*5+20,RGB(0,40,80),pTarget);
+ // Runterzählen
+ EffectVar(0, pTarget, iEffectNumber)-=1;
+ if(EffectVar(0, pTarget, iEffectNumber)<=0) return FX_Execute_Kill;
+ // Ein bischen tut Einfrieren auch weh
+ var dmg=EffectVar(4, pTarget, iEffectNumber);
+ var r=2;
+ if(dmg) r=1;
+
+ if(!Random(r)) {
+ var d=RandomX(1200,dmg);
+ EffectVar(4, pTarget, iEffectNumber)=BoundBy(dmg-d, 0, 0xffffff);
+ // Damit der richtige Spieler den Schaden verursacht
+ var pFrom = GetCursor(EffectVar(2, pTarget, iEffectNumber));
+ if(pFrom)
+ pFrom->DoEnergy(-d*2,pTarget, true);
+ else
+ DoEnergy(-d*2, pTarget, true);
+ }
+ return FX_OK;
+} \ No newline at end of file