func Damage() { if(GetDamage() > 200) { CastObjects(ROCK,3,15); CastObjects(BONE,6,15); var pZombie; pZombie = CreateObject(ZCLK,0,0,-1); pZombie -> SetColorDw(HSL(Random(256),255,127)); pZombie -> Zombize(); pZombie -> SetComDir(COMD_Left); pZombie = CreateObject(ZCLK,0,0,-1); pZombie -> SetColorDw(HSL(Random(256),255,127)); pZombie -> Zombize(); pZombie -> SetComDir(COMD_Left); pZombie = CreateObject(ZCLK,0,0,-1); pZombie -> SetColorDw(HSL(Random(256),255,127)); pZombie -> Zombize(); pZombie -> SetComDir(COMD_Left); pZombie = CreateObject(ZCLK,0,0,-1); pZombie -> SetColorDw(HSL(Random(256),255,127)); pZombie -> Zombize(); pZombie -> SetComDir(COMD_Left); RemoveObject(); } }
global func BlueExplosionEffect(int level, int x, int y) { var glimmer = { Prototype = Particles_Glimmer(), R = PV_Random(100, 150), G = PV_Random(100, 150), B = PV_Random(200, 255) }; var fire = { Prototype = Particles_Fire(), R = PV_Random(100, 150), G = PV_Random(100, 150), B = PV_Random(200, 255), Size = PV_Random(level/2, level/3) }; var smoke = { Prototype = Particles_SmokeTrail(), R = PV_Linear(PV_Random(100, 150), 0), G = PV_Linear(PV_Random(100, 150), 0), B = PV_Linear(PV_Random(200, 255), 0), Size = PV_Random(level - 5, level + 5) }; // Blast particle. CreateParticle("SmokeDirty", x, y, PV_Random(-2, 2), PV_Random(-2, 2), PV_Random(20, 40), smoke, 10); CreateParticle("MagicFire", x, y, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(5, 10), fire, 20); if(!GBackLiquid(x,y)) CreateParticle("SphereSpark", x, y, PV_Random(-100, 100), PV_Random(-100, 100), PV_Random(5, 36 * 3), glimmer, level); if(GBackLiquid(x,y)) CastObjects(Fx_Bubble, level * 4 / 10, level, x, y); return; }
func Flacker() { if(Not(Random(15))) And(CastObjects(SU3V,Sum(1,Random(1)),Sum(5,Random(15)),Sum(-14,Random(28)),Sum(1,Random(2))),Sound("Spark*")); if(Not(Random(2))) return(0); if(Random(6)) return(ObjectSetAction(Local(0),"Neon")&&SetAction("FlackerAn")); if(Random(6)) return(ObjectSetAction(Local(0),"Aus")&&SetAction("FlackerAus")); return(1); }
func Hit() { CastObjects(Flame, RandomX(1,2), RandomX(10,15)); for(var o in FindObjects(Find_Distance(SpellDamage), Find_Func("CanBeHit", this))) { o->AddFireHitEffect(); } Explode(SpellDamage); }
func Hit2() { // Cast flames on impact. for (var i = 0; i < 20; i++) CastObjects(Flame, 1, 20, RandomX(-3, 3), RandomX(-4, 0)); // Cast some particles. // TODO? // Sound effects. Sound("Hits::Materials::Glass::GlassBreak"); Sound("Fire::Inflame"); Explode(10, true); }