public override void OnCast() { if (CheckSequence()) { bool enhancedSpellcast = SpellHelper.IsEnhancedSpell(Caster, null, EnhancedSpellbookType.Summoner, false, true); BaseCreature summon = new SummonedDaemon(); summon.StoreBaseSummonValues(); double duration = 4.0 * Caster.Skills[SkillName.Magery].Value; if (enhancedSpellcast) { duration *= SpellHelper.EnhancedSummonDurationMultiplier; summon.DamageMin = (int)((double)summon.DamageMin * SpellHelper.EnhancedSummonDamageMultiplier); summon.DamageMax = (int)((double)summon.DamageMax * SpellHelper.EnhancedSummonDamageMultiplier); summon.SetHitsMax((int)((double)summon.HitsMax * SpellHelper.EnhancedSummonHitPointsMultiplier)); summon.Hits = summon.HitsMax; } summon.SetDispelResistance(Caster, enhancedSpellcast, 0); int spellHue = Enhancements.GetMobileSpellHue(Caster, Enhancements.SpellType.SummonDaemon); summon.Hue = spellHue; SpellHelper.Summon(summon, Caster, 0x217, TimeSpan.FromSeconds(duration), false, false); } FinishSequence(); }
public override void OnCast() { if (CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((2 * Caster.Skills.Magery.Fixed) / 5); if (Caster.EraAOS) /* Why two diff daemons? TODO: solve this */ { BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, EffectLayer.Head); } else if (Caster.EraUOR) { SpellHelper.Summon(new Daemon(), Caster, 0x216, duration, false, false); } else { // HACK: Convert to T2A mechanis. SpellHelper.Summon(new Daemon(), Caster, 0x216, duration, false, false); } } FinishSequence(); }
public override void OnCast() { if (CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((2 * Caster.Skills.Magery.Fixed) / 5); if (Core.AOS) /* Why two diff daemons? TODO: solve this */ { BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, EffectLayer.Head); if (Caster is BaseCreature) { m_Daemon.ControlOrder = OrderType.Guard; if (Caster.Combatant != null) { m_Daemon.Combatant = Caster.Combatant; } } } else { SpellHelper.Summon(new Daemon(), Caster, 0x216, duration, false, false); } } FinishSequence(); }
public override void OnCast() { if (CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((2 * Caster.Skills.Magery.Fixed) / 5); BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, EffectLayer.Head); } FinishSequence(); }
public override void OnCast() { if (this.CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((2 * this.Caster.Skills.Magery.Fixed) / 5); if (Core.AOS) /* Why two diff daemons? TODO: solve this */ { BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, this.Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, EffectLayer.Head); } else { SpellHelper.Summon(new Daemon(), this.Caster, 0x216, duration, false, false); } Titles.AwardKarma(this.Caster, -50, true); } this.FinishSequence(); }
public override void OnCast() { if (CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((Caster.Skills[SkillName.Magery].Value + Caster.Skills[SkillName.EvalInt].Value) * 9); if (Caster.CheckTargetSkill(SkillName.EvalInt, Caster, 0.0, 120.0)) { BaseCreature m_Daemon = new SummonedDaemonGreater(); SpellHelper.Summon(m_Daemon, Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, Server.Items.CharacterDatabase.GetMySpellHue(Caster, 0), 0, EffectLayer.Head); } else { BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, Server.Items.CharacterDatabase.GetMySpellHue(Caster, 0), 0, EffectLayer.Head); } } FinishSequence(); }
public override void OnCast() { if (this.CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds((2 * this.Caster.Skills.Magery.Fixed) / 5); var ssDurationBonusSeconds = this.Caster.Skills[SkillName.SpiritSpeak].Value; duration.Add(TimeSpan.FromSeconds(ssDurationBonusSeconds)); if (Core.AOS) /* Why two diff daemons? TODO: solve this */ { BaseCreature m_Daemon = new SummonedDaemon(); SpellHelper.Summon(m_Daemon, this.Caster, 0x216, duration, false, false); m_Daemon.FixedParticles(0x3728, 8, 20, 5042, EffectLayer.Head); } else { SpellHelper.Summon(new Daemon(), this.Caster, 0x216, duration, false, false); } } this.FinishSequence(); }