diff options
Diffstat (limited to 'TemplePushing.c4s/System.c4g/MagicLightningBolt.c')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/MagicLightningBolt.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/TemplePushing.c4s/System.c4g/MagicLightningBolt.c b/TemplePushing.c4s/System.c4g/MagicLightningBolt.c index bd94dd9..9b77ef0 100644 --- a/TemplePushing.c4s/System.c4g/MagicLightningBolt.c +++ b/TemplePushing.c4s/System.c4g/MagicLightningBolt.c @@ -4,6 +4,8 @@ #appendto LGTS +local caster; + private func Advance() { var obj; @@ -23,7 +25,7 @@ private func Advance() if (GBackLiquid(iVtxX-GetX(), iVtxY-GetY() )) { // Alle Lebewesen in der Nähe bekommen was ab - for (obj in FindObjects(Find_InRect(iVtxX-GetX()-400, iVtxY-GetY()-400, 800, 800), Find_Or(Find_OCF(OCF_Alive), Find_Func("IsForceField")), Find_NoContainer(), Find_Layer(GetObjectLayer()) )) + for (obj in FindObjects(Find_InRect(iVtxX-GetX()-400, iVtxY-GetY()-400, 800, 800), Find_Or(Find_OCF(OCF_Alive), Find_Func("IsForceField")), Find_NoContainer(), Find_Layer(GetObjectLayer()), Find_Exclude(caster))) { if(!PathFree(iVtxX, iVtxY, GetX(obj), GetY(obj))) continue; if(!GBackLiquid(GetX(obj)-GetX(), GetY(obj)-GetY())) continue; @@ -44,16 +46,13 @@ private func Advance() // Objektanziehung iVtx = GetVertexNum()-1; iVtxX = GetVertex(iVtx, 0); iVtxY = GetVertex(iVtx, 1); - if (iVtx>7) + for (var obj in FindObjects( Find_AtRect(iVtxX-GetX()-13, iVtxY-GetY()-13, 26, 26), Find_Or(Find_OCF(OCF_Alive), Find_Func("IsForceField")), Find_Layer(GetObjectLayer()), Find_NoContainer(), Find_Exclude(caster) ) ) { - for (var obj in FindObjects( Find_AtRect(iVtxX-GetX()-13, iVtxY-GetY()-13, 26, 26), Find_Or(Find_OCF(OCF_Alive), Find_Func("IsForceField")), Find_Layer(GetObjectLayer()), Find_NoContainer() ) ) - { - if(!PathFree(iVtxX, iVtxY, GetX(obj), GetY(obj))) continue; - Attraction(obj); - break; - } + if(!PathFree(iVtxX, iVtxY, GetX(obj), GetY(obj))) continue; + Attraction(obj); + break; } - for(obj in FindObjects(Find_ID(GetID()), Find_Distance(35,iVtxX-GetX(), iVtxY-GetY()), Find_Layer(GetObjectLayer()), Find_Exclude(this()))) + for(obj in FindObjects(Find_ID(GetID()), Find_Distance(35,iVtxX-GetX(), iVtxY-GetY()), Find_Layer(GetObjectLayer()), Find_Exclude(this()), Find_Exclude(caster))) { AttractionLightning(obj); break; @@ -62,4 +61,10 @@ private func Advance() Timer(); // Weiter return; -}
\ No newline at end of file +} + +public func Launch(object caller) +{ + caster = caller; + return _inherited(...); +} |
