Adds assemblies config, fixes crash bugs. (#134)
This commit is contained in:
parent
0140eb73b4
commit
8ec166bcd0
3223 changed files with 191 additions and 191 deletions
|
|
@ -1,103 +0,0 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.SkillHandlers
|
||||
{
|
||||
internal static class Meditation
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
SkillInfo.Table[46].Callback = OnUse;
|
||||
}
|
||||
|
||||
public static bool CheckOkayHolding(Item item)
|
||||
{
|
||||
if (item == null)
|
||||
return true;
|
||||
|
||||
if (item is Spellbook || item is Runebook)
|
||||
return true;
|
||||
|
||||
if (Core.AOS && item is BaseWeapon weapon && weapon.Attributes.SpellChanneling != 0)
|
||||
return true;
|
||||
|
||||
if (Core.AOS && item is BaseArmor armor && armor.Attributes.SpellChanneling != 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static TimeSpan OnUse(Mobile m)
|
||||
{
|
||||
m.RevealingAction();
|
||||
|
||||
if (m.Target != null)
|
||||
{
|
||||
m.SendLocalizedMessage(501845); // You are busy doing something else and cannot focus.
|
||||
|
||||
return TimeSpan.FromSeconds(5.0);
|
||||
}
|
||||
|
||||
if (!Core.AOS && m.Hits < m.HitsMax / 10) // Less than 10% health
|
||||
{
|
||||
m.SendLocalizedMessage(501849); // The mind is strong but the body is weak.
|
||||
|
||||
return TimeSpan.FromSeconds(5.0);
|
||||
}
|
||||
|
||||
if (m.Mana >= m.ManaMax)
|
||||
{
|
||||
m.SendLocalizedMessage(501846); // You are at peace.
|
||||
|
||||
return TimeSpan.FromSeconds(Core.AOS ? 10.0 : 5.0);
|
||||
}
|
||||
|
||||
if (Core.AOS && RegenRates.GetArmorOffset(m) > 0)
|
||||
{
|
||||
m.SendLocalizedMessage(500135); // Regenerative forces cannot penetrate your armor!
|
||||
|
||||
return TimeSpan.FromSeconds(10.0);
|
||||
}
|
||||
|
||||
Item oneHanded = m.FindItemOnLayer(Layer.OneHanded);
|
||||
Item twoHanded = m.FindItemOnLayer(Layer.TwoHanded);
|
||||
|
||||
if (Core.AOS && m.Player)
|
||||
{
|
||||
if (!CheckOkayHolding(oneHanded))
|
||||
m.AddToBackpack(oneHanded);
|
||||
|
||||
if (!CheckOkayHolding(twoHanded))
|
||||
m.AddToBackpack(twoHanded);
|
||||
}
|
||||
else if (!CheckOkayHolding(oneHanded) || !CheckOkayHolding(twoHanded))
|
||||
{
|
||||
m.SendLocalizedMessage(502626); // Your hands must be free to cast spells or meditate.
|
||||
|
||||
return TimeSpan.FromSeconds(2.5);
|
||||
}
|
||||
|
||||
double skillVal = m.Skills.Meditation.Value;
|
||||
double chance = (50.0 + (skillVal - (m.ManaMax - m.Mana)) * 2) / 100;
|
||||
|
||||
if (chance > Utility.RandomDouble())
|
||||
{
|
||||
m.CheckSkill(SkillName.Meditation, 0.0, 100.0);
|
||||
|
||||
m.SendLocalizedMessage(501851); // You enter a meditative trance.
|
||||
m.Meditating = true;
|
||||
BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.ActiveMeditation, 1075657));
|
||||
|
||||
if (m.Player || m.Body.IsHuman)
|
||||
m.PlaySound(0xF9);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendLocalizedMessage(501850); // You cannot focus your concentration.
|
||||
}
|
||||
|
||||
return TimeSpan.FromSeconds(10.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue