62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Spells;
|
|
using Server.Network;
|
|
using Server.Mobiles;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Server.Spells.SkillMasteries
|
|
{
|
|
public class EtherealBurstSpell : SkillMasterySpell
|
|
{
|
|
private static SpellInfo m_Info = new SpellInfo(
|
|
"Ethereal Blast", "Uus Ort Grav",
|
|
-1,
|
|
9002,
|
|
Reagent.Bloodmoss,
|
|
Reagent.Ginseng,
|
|
Reagent.MandrakeRoot
|
|
);
|
|
|
|
public override double RequiredSkill{ get { return 90; } }
|
|
public override double UpKeep { get { return 0; } }
|
|
public override int RequiredMana{ get { return 0; } }
|
|
public override bool PartyEffects { get { return false; } }
|
|
|
|
public override SkillName CastSkill { get { return SkillName.Magery; } }
|
|
public override SkillName DamageSkill { get { return SkillName.EvalInt; } }
|
|
|
|
public EtherealBurstSpell(Mobile caster, Item scroll)
|
|
: base(caster, scroll, m_Info)
|
|
{
|
|
}
|
|
|
|
public override void OnCast()
|
|
{
|
|
if (CheckSequence())
|
|
{
|
|
Caster.Mana = Caster.ManaMax;
|
|
|
|
int duration = 120;
|
|
double skill = ((double)(Caster.Skills[CastSkill].Value + Caster.Skills[DamageSkill].Value) / 2.1) + GetMasteryLevel() * 2;
|
|
|
|
if (skill >= 120)
|
|
duration = 30;
|
|
|
|
if (skill >= 100)
|
|
duration = 60;
|
|
|
|
if (duration >= 60)
|
|
duration = 90;
|
|
|
|
AddToCooldown(TimeSpan.FromMinutes(duration));
|
|
|
|
Caster.PlaySound(0x102);
|
|
Effects.SendTargetParticles(Caster, 0x376A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100);
|
|
Caster.SendLocalizedMessage(1155789); // You feel completely rejuvinated!
|
|
}
|
|
|
|
FinishSequence();
|
|
}
|
|
}
|
|
} |