summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/Frostwave.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/Frostwave.c
parent80b15646d73587f4e15a2897314692b58aa1a47f (diff)
downloadtempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.tar.gz
tempelschubsen-f1ece16c08d8c01e1d49a25f0314a96c021e73cb.zip
r0.921
Diffstat (limited to 'TemplePushing.c4s/System.c4g/Frostwave.c')
-rw-r--r--TemplePushing.c4s/System.c4g/Frostwave.c158
1 files changed, 79 insertions, 79 deletions
diff --git a/TemplePushing.c4s/System.c4g/Frostwave.c b/TemplePushing.c4s/System.c4g/Frostwave.c
index d30db5e..682e502 100644
--- a/TemplePushing.c4s/System.c4g/Frostwave.c
+++ b/TemplePushing.c4s/System.c4g/Frostwave.c
@@ -1,99 +1,99 @@
/*-- Frostwave --*/
-
+
#strict 2
-
+
#appendto MFWV
-
+
local maxRadius;
-
+
protected func Initialize()
{
- maxRadius = 90;
+ maxRadius = 90;
}
-
+
func Activate(object caster, object realcaster)
{
- if (realcaster) caster = realcaster;
-
- if (AddEffect("FrostwaveNSpell", this, 130, 1, this, 0, caster, maxRadius) <= 0)
- {
- RemoveObject();
- return 1;
- }
-
- Sound("MgWind*");
- return 1;
+ if (realcaster) caster = realcaster;
+
+ if (AddEffect("FrostwaveNSpell", this, 130, 1, this, 0, caster, maxRadius) <= 0)
+ {
+ RemoveObject();
+ return 1;
+ }
+
+ Sound("MgWind*");
+ return 1;
}
-
+
func FxFrostwaveNSpellStart(object target, int number, int temp, object caster, int maxRadius)
{
- if (temp) return;
-
- // Initial radius
- EffectVar(1, target, number) = 20;
-
- // Position
- EffectVar(2, target, number) = caster->GetX();
- EffectVar(3, target, number) = caster->GetY();
-
- // Caster
- EffectVar(4, target, number) = caster;
- EffectVar(6, target, number) = caster->GetController();
-
- // Maximum radius
- EffectVar(7, target, number) = maxRadius;
-
- // Combo
- var combo = caster->FindContents(ICE1);
- if (combo)
- {
- EffectVar(5, target, number) = true;
- combo->RemoveObject();
- }
-
- return 1;
+ if (temp) return;
+
+ // Initial radius
+ EffectVar(1, target, number) = 20;
+
+ // Position
+ EffectVar(2, target, number) = caster->GetX();
+ EffectVar(3, target, number) = caster->GetY();
+
+ // Caster
+ EffectVar(4, target, number) = caster;
+ EffectVar(6, target, number) = caster->GetController();
+
+ // Maximum radius
+ EffectVar(7, target, number) = maxRadius;
+
+ // Combo
+ var combo = caster->FindContents(ICE1);
+ if (combo)
+ {
+ EffectVar(5, target, number) = true;
+ combo->RemoveObject();
+ }
+
+ return 1;
}
-
+
func FxFrostwaveNSpellTimer(object target, int number, int time)
{
- var radius = EffectVar(1, target, number);
-
- // Remove if maximum radius is reached
- if (radius >= EffectVar(7, target, number)) return -1;
-
- // Position
- var absX = EffectVar(2, target, number), relX = AbsX(absX);
- var absY = EffectVar(3, target, number), relY = AbsY(absY);
-
- // Combo?
- var searchOCF = OCF_Alive;
- if (EffectVar(5, target, number)) searchOCF |= OCF_Collectible;
-
- // Effects!
- CreateParticle("FrostWave", relX, relY, RandomX(-1, 1), RandomX(-1, 1), 400 + 10 * radius, RGB(255, 255, 255));
-
- // Fling enemies
- var caster = EffectVar(4, target, number);
- for (var obj in FindObjects(
- Find_Distance(radius + 5, relX, relY), Find_Not(Find_Distance(radius - 5)),
- Find_OCF(searchOCF), Find_NoContainer(), Find_Not(caster)))
- {
- var angle = Angle(absX, absY, obj->GetX(), obj->GetY());
- obj->SetKiller(EffectVar(6, target, number));
- Fling(obj, Sin(angle, 80) / 9, -Cos(angle, 80) / 9);
- if (!Frozen(obj)) Freeze(obj, caster);
- }
-
- // Increase radius
- EffectVar(1, target, number) += 8;
-
- return 1;
+ var radius = EffectVar(1, target, number);
+
+ // Remove if maximum radius is reached
+ if (radius >= EffectVar(7, target, number)) return -1;
+
+ // Position
+ var absX = EffectVar(2, target, number), relX = AbsX(absX);
+ var absY = EffectVar(3, target, number), relY = AbsY(absY);
+
+ // Combo?
+ var searchOCF = OCF_Alive;
+ if (EffectVar(5, target, number)) searchOCF |= OCF_Collectible;
+
+ // Effects!
+ CreateParticle("FrostWave", relX, relY, RandomX(-1, 1), RandomX(-1, 1), 400 + 10 * radius, RGB(255, 255, 255));
+
+ // Fling enemies
+ var caster = EffectVar(4, target, number);
+ for (var obj in FindObjects(
+ Find_Distance(radius + 5, relX, relY), Find_Not(Find_Distance(radius - 5)),
+ Find_OCF(searchOCF), Find_NoContainer(), Find_Not(caster)))
+ {
+ var angle = Angle(absX, absY, obj->GetX(), obj->GetY());
+ obj->SetKiller(EffectVar(6, target, number));
+ Fling(obj, Sin(angle, 80) / 9, -Cos(angle, 80) / 9);
+ if (!Frozen(obj)) Freeze(obj, caster);
+ }
+
+ // Increase radius
+ EffectVar(1, target, number) += 8;
+
+ return 1;
}
-
+
/* Zaubercombo */
-
+
public func GetSpellClass() { return WATR; }
public func GetSpellCombo() { return "335"; } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
-
+
/* Custom radius */
-public func SetMaxRadius(int radius) { maxRadius = radius; }
+public func SetMaxRadius(int radius) { maxRadius = radius; } \ No newline at end of file