From f1ece16c08d8c01e1d49a25f0314a96c021e73cb Mon Sep 17 00:00:00 2001 From: Jan <> Date: Fri, 10 Jul 2015 18:11:22 +0200 Subject: r0.921 --- TemplePushing.c4s/System.c4g/Freeze.c | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 TemplePushing.c4s/System.c4g/Freeze.c (limited to 'TemplePushing.c4s/System.c4g/Freeze.c') 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 -- cgit v1.2.3-54-g00ecf