public InternalTarget( StrangleSpell owner ) : base(12, false, TargetFlags.Harmful) { m_Owner = owner; }
public virtual Spell DoCombo(Mobile c) { Spell spell = null; if (m_Combo == 0) { spell = new ExplosionSpell(m_Mobile, null); ++m_Combo; // Move to next spell } else if (m_Combo == 1) { spell = new WeakenSpell(m_Mobile, null); ++m_Combo; // Move to next spell } else if (m_Combo == 2) { if (!c.Poisoned) spell = new PoisonSpell(m_Mobile, null); else if (IsNecromancer) spell = new StrangleSpell(m_Mobile, null); ++m_Combo; // Move to next spell } if (m_Combo == 3 && spell == null) { switch (Utility.Random(IsNecromancer ? 4 : 3)) { case 0: { if (c.Int < c.Dex) spell = new FeeblemindSpell(m_Mobile, null); else spell = new ClumsySpell(m_Mobile, null); ++m_Combo; // Move to next spell break; } case 1: { spell = new EnergyBoltSpell(m_Mobile, null); m_Combo = -1; // Reset combo state break; } case 2: { spell = new FlameStrikeSpell(m_Mobile, null); m_Combo = -1; // Reset combo state break; } default: { spell = new PainSpikeSpell(m_Mobile, null); m_Combo = -1; // Reset combo state break; } } } else if (m_Combo == 4 && spell == null) { spell = new MindBlastSpell(m_Mobile, null); m_Combo = -1; } return spell; }
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 InternalTarget(StrangleSpell owner) : base(Core.ML ? 10 : 12, false, TargetFlags.Harmful) { this.m_Owner = owner; }
public virtual Spell DoCombo(Mobile c) { Spell spell = null; if ( m_Mobile.HitsMax > 0 && (m_Mobile.Hits / m_Mobile.HitsMax) < 0.1 && m_Mobile.Hits < 300 ) { spell = CheckCastHealingSpell(); m_Combo = -1; return spell; } if (m_Combo == 0) { spell = new ExplosionSpell(m_Mobile, null); m_Mobile.DebugSay( "Explosion" ); ++m_Combo; // Move to next spell } else if (m_Combo == 1) { spell = new CorpseSkinSpell(m_Mobile, null); m_Mobile.DebugSay( "Corpse skin" ); ++m_Combo; // Move to next spell } else if (m_Combo == 2) { if ( !c.Poisoned ) { spell = new PoisonSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison" ); } else { spell = new CurseSpell(m_Mobile, null); m_Mobile.DebugSay( "Curse" ); } ++m_Combo; // Move to next spell } else if (m_Combo == 3) { spell = new StrangleSpell(m_Mobile, null); m_Mobile.DebugSay( "Strangle" ); ++m_Combo; // Move to next spell } else if (m_Combo == 4) { spell = new PainSpikeSpell(m_Mobile, null); m_Mobile.DebugSay( "pain spike" ); ++m_Combo; // Move to next spell } else if (m_Combo == 7) { spell = new ExplosionSpell(m_Mobile, null); m_Mobile.DebugSay( "Explosion" ); ++m_Combo; // Move to next spell } else if (m_Combo == 8) { if ( !c.Poisoned ) { spell = new PoisonSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison" ); } else { spell = new CurseSpell(m_Mobile, null); m_Mobile.DebugSay( "Curse" ); } ++m_Combo; // Move to next spell } else if (m_Combo == 9) { spell = new FlameStrikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Flamestrike" ); m_Combo = -1; } else if (m_Combo == 10) { spell = new StrangleSpell(m_Mobile, null); m_Mobile.DebugSay( "Strangle" ); ++m_Combo; // Move to next spell } else if (m_Combo == 11) { spell = new CorpseSkinSpell(m_Mobile, null); m_Mobile.DebugSay( "Corpse skin" ); ++m_Combo; // Move to next spell } else if (m_Combo == 12) { spell = new ExplosionSpell(m_Mobile, null); m_Mobile.DebugSay( "Explosion" ); ++m_Combo; // Move to next spell } else if (m_Combo == 13) { spell = new PoisonStrikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison strike" ); ++m_Combo; // Move to next spell } else if (m_Combo == 14) { spell = new PoisonStrikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison strike" ); ++m_Combo; // Move to next spell } else if (m_Combo == 15) { spell = new PainSpikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Pain spike" ); m_Combo = -1; } if (m_Combo == 5 && spell == null) { switch (Utility.Random(3)) { default: case 0: { spell = new ExplosionSpell(m_Mobile, null); m_Mobile.DebugSay( "Explosion" ); break; } case 1: { spell = new PoisonStrikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Poison strike" ); break; } case 2: { spell = new FlameStrikeSpell(m_Mobile, null); m_Mobile.DebugSay( "Flamestrike" ); ++m_Combo; // Move to next spell break; } } } else if (m_Combo == 6 && spell == null) { spell = new VengefulSpiritSpell(m_Mobile, null); m_Mobile.DebugSay( "Revenant" ); m_Combo = -1; } return spell; }