diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2019-04-09 01:00:29 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2019-04-09 01:00:29 +0200 |
| commit | 903464914318778271c75424ab7e3d68c58c4624 (patch) | |
| tree | 2973de603beeb8f2689b44b8b95457747a1f84d1 /TemplePushing.c4s/System.c4g | |
| parent | e27e48a4642de9451a14f6531b69c34e3e28b93e (diff) | |
| download | tempelschubsen-903464914318778271c75424ab7e3d68c58c4624.tar.gz tempelschubsen-903464914318778271c75424ab7e3d68c58c4624.zip | |
Add hyper mode to gravity spell, which affects only hostile objects
Diffstat (limited to 'TemplePushing.c4s/System.c4g')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/Gravity.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/TemplePushing.c4s/System.c4g/Gravity.c b/TemplePushing.c4s/System.c4g/Gravity.c index b4db7d8..a5ddca8 100644 --- a/TemplePushing.c4s/System.c4g/Gravity.c +++ b/TemplePushing.c4s/System.c4g/Gravity.c @@ -9,9 +9,17 @@ func FxFloatPSpellTimer(pClonk, iEffectNumber, iEffectTime) if(!EffectVar(1,pClonk,iEffectNumber)) return -1;
EffectVar(0,pClonk,iEffectNumber)--;
+ var hyper = EffectVar(2, pClonk, iEffectNumber);
+
var iSearchRadius = GetRange();
var pObj;
- CreateParticle("WhiteAura",GetX(pClonk),GetY(pClonk), RandomX(-1,1), RandomX(-1,1), 12*iSearchRadius,GetPlrColorDw(GetOwner(pClonk)), pClonk);
+ var auraColor = RGB(128, 128, 128);
+ var hyperExtra = 0;
+ if(hyper)
+ {
+ auraColor = GetPlrColorDw(GetOwner(pClonk));
+ }
+ CreateParticle("WhiteAura",GetX(pClonk),GetY(pClonk), RandomX(-1,1), RandomX(-1,1), 12*iSearchRadius, auraColor, pClonk);
var i=2;
while(i--)
{
@@ -23,7 +31,7 @@ func FxFloatPSpellTimer(pClonk, iEffectNumber, iEffectTime) CastParticles("PSpark", 3, iSearchRadius/3, GetX(pClonk), GetY(pClonk)+8, 50, 70, RGBa(150,155,80, 75), RGBa(150,155,80, 75), pClonk);
// Find objects and stop them
- for(var obj in FindObjects(Find_Distance(iSearchRadius, GetX(pClonk), GetY(pClonk)), Find_Not(Find_Func("IgnoreFloatSpell")), Find_Not(Find_OCF(OCF_CrewMember)), Find_Not(Find_Effect("StopNSpell")), Find_NoContainer())) EffectVar(1,pClonk,iEffectNumber)->~DoStop(obj, pClonk);
+ for(var obj in FindObjects(Find_Distance(iSearchRadius, GetX(pClonk), GetY(pClonk)), Find_Not(Find_Func("IgnoreFloatSpell")), Find_Not(Find_OCF(OCF_CrewMember)), Find_Not(Find_Effect("StopNSpell")), Find_NoContainer())) EffectVar(1,pClonk,iEffectNumber)->~DoStop(obj, pClonk, hyper);
return 1;
}
@@ -38,13 +46,12 @@ func FxStopNSpellTimer(pTarget, iNumber, iEffectTime) if (!FindObject2(Find_ID(GVTY), Find_Distance(GetRange(), GetX(pTarget), GetY(pTarget)))) return -1;
}
-func DoStop(object pObj, object pCaller)
+func DoStop(object pObj, object pCaller, bool hyper)
{
+ if(hyper && !Hostile(GetOwner(pCaller), GetController(pObj))) return;
if(GetEffect("StopNSpell", pObj)) return;
pObj->~MagicStop(pCaller);
AddEffect("StopNSpell", pObj, 200, 1, 0, GVTY);
-
- return 0;
}
func FxFloatPSpellStart(pClonk, iEffectNumber, iTemp)
@@ -59,4 +66,5 @@ private func FxFloatPSpellAdd(object pTarget, int iNumber) {
// Effekt übernehmen
EffectVar(0, pTarget, iNumber) += 180;
+ EffectVar(2, pTarget, iNumber) = true;
}
|
