Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
78
Scripts/Spells/Skill Masteries/Shadow.cs
Normal file
78
Scripts/Spells/Skill Masteries/Shadow.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Spells;
|
||||
using Server.Network;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Spells.SkillMasteries
|
||||
{
|
||||
public class ShadowSpell : SkillMasterySpell
|
||||
{
|
||||
private static SpellInfo m_Info = new SpellInfo(
|
||||
"Shadow", "",
|
||||
-1,
|
||||
9002
|
||||
);
|
||||
|
||||
public override double UpKeep { get { return 4; } }
|
||||
public override int RequiredMana { get { return 10; } }
|
||||
public override bool RevealOnTick { get { return false; } }
|
||||
public override bool RevealOnCast { get { return false; } }
|
||||
|
||||
public override SkillName CastSkill { get { return SkillName.Ninjitsu; } }
|
||||
public override SkillName DamageSkill { get { return SkillName.Stealth; } }
|
||||
|
||||
public ShadowSpell(Mobile caster, Item scroll)
|
||||
: base(caster, scroll, m_Info)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
SkillMasterySpell spell = GetSpell(Caster, this.GetType());
|
||||
|
||||
if (spell != null)
|
||||
{
|
||||
spell.Expire();
|
||||
BuffInfo.RemoveBuff(Caster, BuffIcon.Shadow);
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.CheckCast();
|
||||
}
|
||||
|
||||
public override void OnCast()
|
||||
{
|
||||
if (CheckSequence())
|
||||
{
|
||||
Caster.FixedParticles(0x3709, 10, 30, 5052, 2050, 7, EffectLayer.LeftFoot, 0);
|
||||
Caster.PlaySound(0x22F);
|
||||
|
||||
double skill = (Caster.Skills[CastSkill].Value + Caster.Skills[DamageSkill].Value + (GetMasteryLevel() * 40)) / 3;
|
||||
int duration = (int)(skill / 3.4);
|
||||
|
||||
Expires = DateTime.UtcNow + TimeSpan.FromSeconds(duration);
|
||||
BeginTimer();
|
||||
|
||||
BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.Shadow, 1155910, 1156059, TimeSpan.FromSeconds(duration), Caster)); // Increases difficulty to be detected while hidden. <br>Increases difficulty to unhide from taking damage.
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
}
|
||||
|
||||
public static double GetDifficultyFactor(Mobile m)
|
||||
{
|
||||
ShadowSpell spell = GetSpell(m, typeof(ShadowSpell)) as ShadowSpell;
|
||||
|
||||
if(spell != null)
|
||||
return ((spell.Caster.Skills[spell.CastSkill].Value + spell.Caster.Skills[spell.DamageSkill].Value + (spell.GetMasteryLevel() * 40)) / 3) / 150;
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
protected override void DoEffects()
|
||||
{
|
||||
Caster.FixedParticles(0x376A, 9, 32, 5005, 2123, 0, EffectLayer.Waist, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user