public InternalTarget(EvilOmenSpell owner) : base(Core.ML ? 10 : 12, false, TargetFlags.Harmful) { m_Owner = owner; }
public InternalTarget(EvilOmenSpell owner) : base(owner.SpellRange, false, TargetFlags.Harmful) { m_Owner = owner; }
public virtual Spell DoCombo(Mobile c) { Spell spell = null; if (m_Combo == 0) { spell = new PoisonStrikeSpell(m_Mobile, null); ++m_Combo; // Move to next spell } else if (m_Combo == 1) { spell = new BloodOathSpell(m_Mobile, null); ++m_Combo; // Move to next spell } else if (m_Combo == 2) { if (!c.Poisoned) spell = new MindRotSpell(m_Mobile, null); ++m_Combo; // Move to next spell } if (m_Combo == 3 && spell == null) { switch (Utility.Random(3)) { default: case 0: { if (c.Int < c.Dex) spell = new StrangleSpell(m_Mobile, null); else spell = new EvilOmenSpell(m_Mobile, null); ++m_Combo; // Move to next spell break; } case 1: { spell = new PoisonStrikeSpell(m_Mobile, null); m_Combo = -1; // Reset combo state break; } case 2: { spell = new BloodOathSpell(m_Mobile, null); m_Combo = -1; // Reset combo state break; } } } else if (m_Combo == 4 && spell == null) { spell = new VengefulSpiritSpell(m_Mobile, null); m_Combo = -1; } return spell; }
public override Spell DoCombo(Mobile c) { Spell spell = null; if (m_NecroComboType == NecroComboType.None) { m_NecroComboType = (NecroComboType)Utility.RandomMinMax(1, 7); m_Combo = 0; m_Mobile.DebugSay("Doing {0} Combo", m_NecroComboType); } if (m_Combo == 0) { switch (m_NecroComboType) { case NecroComboType.Exp_FS_Omen_Poison_PS: case NecroComboType.Exp_MB_Omen_Poison_PS: case NecroComboType.Exp_EB_Omen_Poison_PS: case NecroComboType.Exp_FB_MA_Poison_PS: case NecroComboType.Exp_FB_Poison_PS: case NecroComboType.Exp_FB_MA_PS: case NecroComboType.Exp_Poison_FB_PS: spell = new ExplosionSpell(m_Mobile, null); break; } ++m_Combo; } else if (m_Combo == 1) { switch (m_NecroComboType) { case NecroComboType.Exp_FS_Omen_Poison_PS: spell = new FlameStrikeSpell(m_Mobile, null); break; case NecroComboType.Exp_MB_Omen_Poison_PS: spell = new MindBlastSpell(m_Mobile, null); break; case NecroComboType.Exp_EB_Omen_Poison_PS: spell = new EnergyBoltSpell(m_Mobile, null); break; case NecroComboType.Exp_FB_MA_Poison_PS: case NecroComboType.Exp_FB_Poison_PS: case NecroComboType.Exp_FB_MA_PS: spell = new FireballSpell(m_Mobile, null); break; case NecroComboType.Exp_Poison_FB_PS: spell = new PoisonSpell(m_Mobile, null); break; } ++m_Combo; } else if (m_Combo == 2) { switch (m_NecroComboType) { case NecroComboType.Exp_FS_Omen_Poison_PS: case NecroComboType.Exp_MB_Omen_Poison_PS: case NecroComboType.Exp_EB_Omen_Poison_PS: spell = new EvilOmenSpell(m_Mobile, null); break; case NecroComboType.Exp_FB_MA_Poison_PS: spell = new MagicArrowSpell(m_Mobile, null); break; case NecroComboType.Exp_FB_Poison_PS: spell = new PoisonSpell(m_Mobile, null); break; case NecroComboType.Exp_FB_MA_PS: spell = new MagicArrowSpell(m_Mobile, null); break; case NecroComboType.Exp_Poison_FB_PS: spell = new FireballSpell(m_Mobile, null); break; } ++m_Combo; } else if (m_Combo == 3) { switch (m_NecroComboType) { case NecroComboType.Exp_FS_Omen_Poison_PS: case NecroComboType.Exp_MB_Omen_Poison_PS: case NecroComboType.Exp_EB_Omen_Poison_PS: case NecroComboType.Exp_FB_MA_Poison_PS: case NecroComboType.Exp_FB_Poison_PS: spell = new PoisonSpell(m_Mobile, null); break; case NecroComboType.Exp_FB_MA_PS: case NecroComboType.Exp_Poison_FB_PS: if (Utility.RandomBool()) spell = new PoisonStrikeSpell(m_Mobile, null); else spell = new PainSpikeSpell(m_Mobile, null); EndCombo(); return spell; } ++m_Combo; } else if (m_Combo == 4) { switch (m_NecroComboType) { case NecroComboType.Exp_FS_Omen_Poison_PS: case NecroComboType.Exp_MB_Omen_Poison_PS: case NecroComboType.Exp_EB_Omen_Poison_PS: case NecroComboType.Exp_FB_MA_Poison_PS: case NecroComboType.Exp_FB_Poison_PS: case NecroComboType.Exp_FB_MA_PS: case NecroComboType.Exp_Poison_FB_PS: if (Utility.RandomBool()) spell = new PoisonStrikeSpell(m_Mobile, null); else spell = new PainSpikeSpell(m_Mobile, null); EndCombo(); return spell; } } return spell; }
public virtual Spell ChooseSpell( Mobile c ) { Spell spell = null; spell = CheckCastHealingSpell(); if ( spell != null ) return spell; switch (Utility.Random(5)) { default: case 0: case 1: case 2: // Deal some damage { spell = GetRandomDamageSpell(c); break; } case 3: // Curse it { spell = GetRandomCurseSpell(); break; } case 4: // Set up a combo of attacks { switch ( Utility.Random( 6 ) ) { default: case 0: { m_Combo = 0; spell = new PoisonSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison" ); break; } case 1: { m_Combo = 0; spell = new EvilOmenSpell(m_Mobile, null); m_Mobile.DebugSay( "Evil Omen" ); break; } case 2: { m_Combo = 7; spell = new CorpseSkinSpell(m_Mobile, null); m_Mobile.DebugSay( "Corpse Skin" ); break; } case 3: { m_Combo = 7; spell = new CurseSpell(m_Mobile, null); m_Mobile.DebugSay( "Curse" ); break; } case 4: { m_Combo = 10; spell = new CurseSpell(m_Mobile, null); m_Mobile.DebugSay( "Curse" ); break; } case 5: { m_Combo = 10; spell = new ExplosionSpell(m_Mobile, null); m_Mobile.DebugSay( "Explosion" ); break; } } break; } } return spell; }