skillcaps and things that exceed it Possible threading issue Addition of Generic FindItemsByType - List<T> findItemsByType<T>() Change to make polymorph not have a timer and instead a toggle skill KiAttack no longer works with ranged weapons Poison strike speed and damage changed Necro spells now affected by FC Must have atleast 50 weapon skill if no shield equipped to use Evasion Stalking bonus capped at 10 + skill/10 Stalking bonus now Clears Bugfix w/Guilds Crashguard Exception message moved closer to the top of the file. Character creation of Pallys and necros using advanced skills now gives skill items Honor no longer works on Players Pre-ML area HitArea attacks nolonger require LoS Serialization fix for BladeOfTheRighteous RidingSwipe now has paralyzation immunity as with NerveStrike and ParaBlow AnkhEast renamed to AnkhNorth LeggingsOfBane no longer have 510 HP ElvenWashBasinEastAddon Fixed AnsellaGryen won't be renamed each time the server Restarts DiseasedCats are properly named Localization fixes in DefBlacksmithy BearMasks/DearMAsks and things that extend from them now can be repaired
81 lines
No EOL
2.3 KiB
C#
81 lines
No EOL
2.3 KiB
C#
|
|
using System;
|
|
using Server.Items;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Items
|
|
{
|
|
/// <summary>
|
|
/// If you are on foot, dismounts your opponent and damage the ethereal's rider or the
|
|
/// living mount(which must be healed before ridden again). If you are mounted, damages
|
|
/// and stuns the mounted opponent.
|
|
/// </summary>
|
|
public class RidingSwipe : WeaponAbility
|
|
{
|
|
public RidingSwipe()
|
|
{
|
|
}
|
|
|
|
public override int BaseMana { get { return 30; } }
|
|
|
|
public override bool RequiresSE { get { return true; } }
|
|
|
|
public override bool CheckSkills( Mobile from )
|
|
{
|
|
if( GetSkill( from, SkillName.Bushido ) < 50.0 )
|
|
{
|
|
from.SendLocalizedMessage( 1070768, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido skill to perform that attack!
|
|
return false;
|
|
}
|
|
|
|
return base.CheckSkills( from );
|
|
}
|
|
|
|
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
|
{
|
|
if( !defender.Mounted )
|
|
{
|
|
attacker.SendLocalizedMessage( 1060848 ); // This attack only works on mounted targets
|
|
ClearCurrentAbility( attacker );
|
|
return;
|
|
}
|
|
|
|
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
|
return;
|
|
|
|
ClearCurrentAbility( attacker );
|
|
|
|
if( !attacker.Mounted )
|
|
{
|
|
Mobile mount = defender.Mount as Mobile;
|
|
BaseMount.Dismount( defender );
|
|
|
|
if( mount != null ) //Ethy mounts don't take damage
|
|
{
|
|
int amount = 10 + (int)(10.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 5);
|
|
|
|
AOS.Damage( mount, null, amount, 100, 0, 0, 0, 0 ); //The mount just takes damage, there's no flagging as if it was attacking the mount directly
|
|
|
|
//TODO: Mount prevention until mount healed
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int amount = 10 + (int)(10.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 5);
|
|
|
|
AOS.Damage( defender, attacker, amount, 100, 0, 0, 0, 0 );
|
|
|
|
if( Server.Items.ParalyzingBlow.IsImmune( defender ) ) //Does it still do damage?
|
|
{
|
|
attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
|
|
defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.
|
|
}
|
|
else
|
|
{
|
|
defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) );
|
|
Server.Items.ParalyzingBlow.BeginImmunity( defender, Server.Items.ParalyzingBlow.FreezeDelayDuration );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |