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/Plague.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'TemplePushing.c4s/System.c4g/Plague.c') diff --git a/TemplePushing.c4s/System.c4g/Plague.c b/TemplePushing.c4s/System.c4g/Plague.c index ea80c2e..ec7268e 100644 --- a/TemplePushing.c4s/System.c4g/Plague.c +++ b/TemplePushing.c4s/System.c4g/Plague.c @@ -4,6 +4,20 @@ #appendto MGPL +protected func Slay() { + var pClonk; + while(pClonk=FindObject(0,-iRand/6,-iRand/6,iRand/3,iRand/3,OCF_Alive(),0,0,0, pClonk)) + if(GetActionTarget() != pClonk) + AddEffect("Poison",pClonk,182,10,0,GetID(), fSnake, GetActionTarget()); + RemoveObject(); +} + +func FxPoisonStart(object pClonk,int iEffectNumber, int iTemp, fSnake, pCaster) +{ + EffectVar(2, pClonk, iEffectNumber) = GetController(pCaster); + return _inherited(pClonk, iEffectNumber, iTemp, fSnake); +} + func FxPoisonTimer(pClonk, iEffectNumber, iEffectTime) { if(iEffectTime >= 1200) return(-1); @@ -13,7 +27,12 @@ func FxPoisonTimer(pClonk, iEffectNumber, iEffectTime) CreateParticle("PSpark", GetX(pClonk), GetY(pClonk), 0, -1, EffectVar(0, pClonk, iEffectNumber)*5+50, RGBa(fSnake*55, 55, 0), pClonk, 1); if(GBackLiquid(GetX(pClonk), GetY(pClonk))) return(-1); - if(!Random(7)) DoEnergy(-2, pClonk); + var pFrom = GetCursor(EffectVar(2, pClonk, iEffectNumber)); + if(!Random(5)) + { + if(pFrom) pFrom->DoEnergy(-2, pClonk); + else DoEnergy(-2, pClonk); + } var obj; var iRadius = EffectCall(pClonk,iEffectNumber,"MaxRange"); while(obj = FindObject(0, -iRadius+GetX(pClonk),-iRadius+GetY(pClonk),iRadius*2,iRadius*2, OCF_Alive(),0,0, NoContainer(), obj)) @@ -22,12 +41,12 @@ func FxPoisonTimer(pClonk, iEffectNumber, iEffectTime) { if(!GetAction(obj)S="Field") { - AddEffect("Poison",obj,182,10,0,MGPL,fSnake); + AddEffect("Poison",obj,182,10,0,MGPL,fSnake,pFrom); } } } return(1); } -func FxPoisonMaxRange() { return(100); } +func FxPoisonMaxRange() { return(175); } -- cgit v1.2.3-54-g00ecf