protected override void OnTick() { this.m_Count++; //if ( Caster != null ) //Ability.Aura( m_LastTarget, m_StormMap, Caster, m_Damage, m_Damage, ResistanceType.Cold, 0, null, "" ); if (this.m_Count > this.m_MaxCount || this.Caster == null) { HailStormSpell.RemoveHailPoint(this.m_StormPoint); this.Stop(); return; } if ((this.m_Count % 10) == 0) { //Ability.Aura( m_StormPoint, m_StormMap, Caster, 15, 15, ResistanceType.Cold, 5, null, "" ); this.m_LastTarget.X = this.m_StormPoint.X + Utility.RandomMinMax(-5, 5); } this.m_LastTarget.Y = this.m_StormPoint.Y + Utility.RandomMinMax(-5, 5); Effects.SendMovingParticles( new Entity(Serial.Zero, new Point3D(this.m_LastTarget.X - 10, this.m_LastTarget.Y - 10, this.m_LastTarget.Z + 30), this.m_StormMap), new Entity(Serial.Zero, this.m_LastTarget, this.m_StormMap), 0x36D4 /*0x1EA7*/, 15, 0, false, false, 1365, 0, 9502, 1, 0, (EffectLayer)255, 0x100); }
public Spell GetMysticSpell() { Spell spell = null; switch( Utility.Random(8) ) { case 0: case 1: { if (m_Mobile.Combatant is Mobile && this.CheckForSleep((Mobile)this.m_Mobile.Combatant)) { this.m_Mobile.DebugSay("Casting Sleep"); spell = new SleepSpell(this.m_Mobile, null); break; } else goto case 7; } case 2: { if (this.m_Mobile.Followers < 2) { int whichone = Utility.Random(3); if (this.m_Mobile.Skills[SkillName.Mysticism].Value > 80.0 && whichone > 0) { this.m_Mobile.DebugSay("Casting Rising Colossus"); spell = new RisingColossusSpell(this.m_Mobile, null); } else if (this.m_Mobile.Skills[SkillName.Mysticism].Value > 30.0) { this.m_Mobile.DebugSay("Casting Animated Weapon"); spell = new AnimatedWeaponSpell(this.m_Mobile, null); } } if (spell != null) break; else goto case 7; } case 3: { if (this.m_CanShapeShift && this.m_Mobile.Skills[SkillName.Mysticism].Value > 30.0) { this.m_Mobile.DebugSay("Casting Stone Form"); spell = new StoneFormSpell(this.m_Mobile, null); break; } else goto case 7; } case 4: case 5: { if (m_Mobile.Combatant is Mobile && !SpellPlagueSpell.HasSpellPlague((Mobile)m_Mobile.Combatant) && this.m_Mobile.Skills[SkillName.Mysticism].Value > 70.0) { this.m_Mobile.DebugSay("Casting Spell Plague"); spell = new SpellPlagueSpell(this.m_Mobile, null); break; } else goto case 7; } case 6: case 7: { switch( Utility.Random((int)(this.m_Mobile.Skills[SkillName.Mysticism].Value / 20)) ) { default: spell = new NetherBoltSpell(this.m_Mobile, null); break; case 1: spell = new EagleStrikeSpell(this.m_Mobile, null); break; case 2: spell = new BombardSpell(this.m_Mobile, null); break; case 3: spell = new HailStormSpell(this.m_Mobile, null); break; case 4: spell = new NetherCycloneSpell(this.m_Mobile, null); break; } break; } } return spell; }
public InternalTarget(HailStormSpell owner) : base(10, true, TargetFlags.None) { m_Owner = owner; }