Fixes casting checks
This commit is contained in:
parent
7ea00fbf4f
commit
03dd5f1926
431 changed files with 5616 additions and 6250 deletions
|
|
@ -14,7 +14,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -28,7 +28,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
|
@ -41,7 +41,7 @@ namespace Server.Items
|
|||
|
||||
DefenseMasteryInfo info = m_Table[attacker] as DefenseMasteryInfo;
|
||||
|
||||
if( info != null )
|
||||
if ( info != null )
|
||||
EndDefense( (object)info );
|
||||
|
||||
ResistanceMod mod = new ResistanceMod( ResistanceType.Physical, 50 + modifier );
|
||||
|
|
@ -76,7 +76,7 @@ namespace Server.Items
|
|||
{
|
||||
DefenseMasteryInfo info = m_Table[targ] as DefenseMasteryInfo;
|
||||
|
||||
if( info == null )
|
||||
if ( info == null )
|
||||
return false;
|
||||
|
||||
damageMalus = info.m_DamageMalus;
|
||||
|
|
@ -87,10 +87,10 @@ namespace Server.Items
|
|||
{
|
||||
DefenseMasteryInfo info = (DefenseMasteryInfo)state;
|
||||
|
||||
if( info.m_Mod != null )
|
||||
if ( info.m_Mod != null )
|
||||
info.m_From.RemoveResistanceMod( info.m_Mod );
|
||||
|
||||
if( info.m_Timer != null )
|
||||
if ( info.m_Timer != null )
|
||||
info.m_Timer.Stop();
|
||||
|
||||
// No message is sent to the player.
|
||||
|
|
|
|||
|
|
@ -90,15 +90,15 @@ namespace Server.Items
|
|||
defender.Mount.Rider = null;
|
||||
}
|
||||
|
||||
if( attacker is PlayerMobile )
|
||||
if ( attacker is PlayerMobile )
|
||||
{
|
||||
(attacker as PlayerMobile).SetMountBlock(BlockMountType.DismountRecovery, RemountDelay, true );
|
||||
}
|
||||
else if( Core.ML && attacker is BaseCreature )
|
||||
else if ( Core.ML && attacker is BaseCreature )
|
||||
{
|
||||
BaseCreature bc = attacker as BaseCreature;
|
||||
|
||||
if( bc.ControlMaster is PlayerMobile )
|
||||
if ( bc.ControlMaster is PlayerMobile )
|
||||
{
|
||||
PlayerMobile pm = bc.ControlMaster as PlayerMobile;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -37,9 +37,9 @@ namespace Server.Items
|
|||
|
||||
public override bool Validate( Mobile from )
|
||||
{
|
||||
if( base.Validate( from ) )
|
||||
if ( base.Validate( from ) )
|
||||
{
|
||||
if( from.Mounted )
|
||||
if ( from.Mounted )
|
||||
return true;
|
||||
else
|
||||
{
|
||||
|
|
@ -53,7 +53,7 @@ namespace Server.Items
|
|||
|
||||
public void Use( Mobile attacker, Mobile defender )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) || attacker.Weapon == null ) //sanity
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) || attacker.Weapon == null ) //sanity
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063352, "50" ); // You need ~1_SKILL_REQUIREMENT~ Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -32,10 +32,10 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
if( Registry.Contains( attacker ) )
|
||||
if ( Registry.Contains( attacker ) )
|
||||
{
|
||||
DualWieldTimer existingtimer = (DualWieldTimer)Registry[attacker];
|
||||
existingtimer.Stop();
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -32,10 +32,10 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
if( Registry.Contains( defender ) )
|
||||
if ( Registry.Contains( defender ) )
|
||||
{
|
||||
FeintTimer existingtimer = (FeintTimer)Registry[defender];
|
||||
existingtimer.Stop();
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 && GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063347, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido or Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -33,19 +33,19 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) ) //Mana check after check that there are targets
|
||||
if ( !Validate( attacker ) ) //Mana check after check that there are targets
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
||||
Map map = attacker.Map;
|
||||
|
||||
if( map == null )
|
||||
if ( map == null )
|
||||
return;
|
||||
|
||||
BaseWeapon weapon = attacker.Weapon as BaseWeapon;
|
||||
|
||||
if( weapon == null )
|
||||
if ( weapon == null )
|
||||
return;
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
|
|
@ -59,22 +59,22 @@ namespace Server.Items
|
|||
{
|
||||
Mobile m = (Mobile)list[i];
|
||||
|
||||
if( m != defender && m != attacker && SpellHelper.ValidIndirectTarget( attacker, m ) )
|
||||
if ( m != defender && m != attacker && SpellHelper.ValidIndirectTarget( attacker, m ) )
|
||||
{
|
||||
if( m == null || m.Deleted || m.Map != attacker.Map || !m.Alive || !attacker.CanSee( m ) || !attacker.CanBeHarmful( m ) )
|
||||
if ( m == null || m.Deleted || m.Map != attacker.Map || !m.Alive || !attacker.CanSee( m ) || !attacker.CanBeHarmful( m ) )
|
||||
continue;
|
||||
|
||||
if( !attacker.InRange( m, weapon.MaxRange ) )
|
||||
if ( !attacker.InRange( m, weapon.MaxRange ) )
|
||||
continue;
|
||||
|
||||
if( attacker.InLOS( m ) )
|
||||
if ( attacker.InLOS( m ) )
|
||||
targets.Add( m );
|
||||
}
|
||||
}
|
||||
|
||||
if( targets.Count > 0 )
|
||||
if ( targets.Count > 0 )
|
||||
{
|
||||
if( !CheckMana( attacker, true ) )
|
||||
if ( !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
attacker.FixedEffect( 0x3728, 10, 15 );
|
||||
|
|
@ -90,7 +90,7 @@ namespace Server.Items
|
|||
|
||||
Timer t = Registry[m] as Timer;
|
||||
|
||||
if( t != null )
|
||||
if ( t != null )
|
||||
{
|
||||
t.Stop();
|
||||
Registry.Remove( m );
|
||||
|
|
@ -136,7 +136,7 @@ namespace Server.Items
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
if ( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
{
|
||||
Stop();
|
||||
Server.Items.FrenziedWhirlwind.Registry.Remove( m_Defender );
|
||||
|
|
@ -146,18 +146,18 @@ namespace Server.Items
|
|||
m_DamageRemaining -= DamagePerTick;
|
||||
m_DamageToDo += DamagePerTick;
|
||||
|
||||
if( m_DamageRemaining <= 0 && m_DamageToDo < 1 )
|
||||
if ( m_DamageRemaining <= 0 && m_DamageToDo < 1 )
|
||||
m_DamageToDo = 1.0; //Confirm this 'round up' at the end
|
||||
|
||||
int damage = (int)m_DamageToDo;
|
||||
|
||||
if( damage > 0 )
|
||||
if ( damage > 0 )
|
||||
{
|
||||
m_Defender.Damage( damage, m_Attacker );
|
||||
m_DamageToDo -= damage;
|
||||
}
|
||||
|
||||
if( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
if ( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
{
|
||||
Stop();
|
||||
Server.Items.FrenziedWhirlwind.Registry.Remove( m_Defender );
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit(Mobile attacker, Mobile defender, int damage)
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1070768, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -27,7 +27,7 @@ namespace Server.Items
|
|||
|
||||
public override bool OnBeforeSwing( Mobile attacker, Mobile defender )
|
||||
{
|
||||
if( defender.Paralyzed )
|
||||
if ( defender.Paralyzed )
|
||||
{
|
||||
attacker.SendLocalizedMessage( 1061923 ); // The target is already frozen.
|
||||
return false;
|
||||
|
|
@ -38,7 +38,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
|
@ -70,7 +70,7 @@ namespace Server.Items
|
|||
Server.Items.ParalyzingBlow.BeginImmunity( defender, Server.Items.ParalyzingBlow.FreezeDelayDuration );
|
||||
}
|
||||
}
|
||||
else if( !cantpara )
|
||||
else if ( !cantpara )
|
||||
{
|
||||
AOS.Damage( defender, attacker, (int)(15.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 10), true, 100, 0, 0, 0, 0 ); //10-25
|
||||
defender.Freeze(TimeSpan.FromSeconds(2.0));
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ namespace Server.Items
|
|||
|
||||
public override bool OnBeforeSwing( Mobile attacker, Mobile defender )
|
||||
{
|
||||
if( defender.Paralyzed )
|
||||
if ( defender.Paralyzed )
|
||||
{
|
||||
attacker.SendLocalizedMessage( 1061923 ); // The target is already frozen.
|
||||
return false;
|
||||
|
|
@ -61,12 +61,12 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
||||
if( IsImmune( defender ) ) //Intentionally going after Mana consumption
|
||||
if ( IsImmune( defender ) ) //Intentionally going after Mana consumption
|
||||
{
|
||||
attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
|
||||
defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Bushido ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1070768, "50" ); // You need ~1_SKILL_REQUIREMENT~ Bushido skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -33,24 +33,24 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( !defender.Mounted )
|
||||
if ( !defender.Mounted )
|
||||
{
|
||||
attacker.SendLocalizedMessage( 1060848 ); // This attack only works on mounted targets
|
||||
ClearCurrentAbility( attacker );
|
||||
return;
|
||||
}
|
||||
|
||||
if( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
||||
if( !attacker.Mounted )
|
||||
if ( !attacker.Mounted )
|
||||
{
|
||||
Mobile mount = defender.Mount as Mobile;
|
||||
BaseMount.Dismount( defender );
|
||||
|
||||
if( mount != null ) //Ethy mounts don't take damage
|
||||
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);
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ namespace Server.Items
|
|||
|
||||
AOS.Damage( defender, attacker, amount, 100, 0, 0, 0, 0 );
|
||||
|
||||
if( Server.Items.ParalyzingBlow.IsImmune( defender ) ) //Does it still do damage?
|
||||
if ( Server.Items.ParalyzingBlow.IsImmune( defender ) ) //Does it still do damage?
|
||||
{
|
||||
attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
|
||||
defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Items
|
|||
|
||||
public override bool CheckSkills( Mobile from )
|
||||
{
|
||||
if( GetSkill( from, SkillName.Ninjitsu ) < 50.0 )
|
||||
if ( GetSkill( from, SkillName.Ninjitsu ) < 50.0 )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063352, "50" ); // You need ~1_SKILL_REQUIREMENT~ Ninjitsu skill to perform that attack!
|
||||
return false;
|
||||
|
|
@ -33,7 +33,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
if( Registry.Contains( defender ) || !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
if ( Registry.Contains( defender ) || !Validate( attacker ) || !CheckMana( attacker, true ) )
|
||||
return;
|
||||
|
||||
ClearCurrentAbility( attacker );
|
||||
|
|
@ -73,7 +73,7 @@ namespace Server.Items
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
if ( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
{
|
||||
Stop();
|
||||
Server.Items.TalonStrike.Registry.Remove( m_Defender );
|
||||
|
|
@ -83,19 +83,19 @@ namespace Server.Items
|
|||
m_DamageRemaining -= DamagePerTick;
|
||||
m_DamageToDo += DamagePerTick;
|
||||
|
||||
if( m_DamageRemaining <= 0 && m_DamageToDo < 1 )
|
||||
if ( m_DamageRemaining <= 0 && m_DamageToDo < 1 )
|
||||
m_DamageToDo = 1.0; //Confirm this 'round up' at the end
|
||||
|
||||
int damage = (int)m_DamageToDo;
|
||||
|
||||
if( damage > 0 )
|
||||
if ( damage > 0 )
|
||||
{
|
||||
//m_Defender.Damage( damage, m_Attacker, false );
|
||||
m_Defender.Hits -= damage; //Don't show damage, don't disrupt
|
||||
m_DamageToDo -= damage;
|
||||
}
|
||||
|
||||
if( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
if ( !m_Defender.Alive || m_DamageRemaining <= 0 )
|
||||
{
|
||||
Stop();
|
||||
Server.Items.TalonStrike.Registry.Remove( m_Defender );
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ namespace Server.Items
|
|||
|
||||
if ( from.Mana < mana )
|
||||
{
|
||||
if( ( from is BaseCreature ) && ( from as BaseCreature ).HasManaOveride )
|
||||
if ( ( from is BaseCreature ) && ( from as BaseCreature ).HasManaOveride )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -176,7 +176,7 @@ namespace Server.Items
|
|||
if ( state == null )
|
||||
return false;
|
||||
|
||||
if( RequiresSE && !state.SupportsExpansion( Expansion.SE ) )
|
||||
if ( RequiresSE && !state.SupportsExpansion( Expansion.SE ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 1063456 ); // You must upgrade to Samurai Empire in order to use that ability.
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -578,9 +578,9 @@ namespace Server.Items
|
|||
if ( !Ethics.Ethic.CheckEquip( from, this ) )
|
||||
return false;
|
||||
|
||||
if( RequiredRace != null && from.Race != RequiredRace )
|
||||
if ( RequiredRace != null && from.Race != RequiredRace )
|
||||
{
|
||||
if( RequiredRace == Race.Elf )
|
||||
if ( RequiredRace == Race.Elf )
|
||||
from.SendLocalizedMessage( 1072203 ); // Only Elves may use this.
|
||||
else
|
||||
from.SendMessage( "Only {0} may use this.", RequiredRace.PluralName );
|
||||
|
|
@ -893,15 +893,15 @@ namespace Server.Items
|
|||
// Bonus granted by successful use of Honorable Execution.
|
||||
bonus += HonorableExecution.GetSwingBonus( m );
|
||||
|
||||
if( DualWield.Registry.Contains( m ) )
|
||||
if ( DualWield.Registry.Contains( m ) )
|
||||
bonus += ((DualWield.DualWieldTimer)DualWield.Registry[m]).BonusSwingSpeed;
|
||||
|
||||
if( Feint.Registry.Contains( m ) )
|
||||
if ( Feint.Registry.Contains( m ) )
|
||||
bonus -= ((Feint.FeintTimer)Feint.Registry[m]).SwingSpeedReduction;
|
||||
|
||||
TransformContext context = TransformationSpellHelper.GetContext( m );
|
||||
|
||||
if( context != null && context.Spell is ReaperFormSpell )
|
||||
if ( context != null && context.Spell is ReaperFormSpell )
|
||||
bonus += ((ReaperFormSpell)context.Spell).SwingSpeedBonus;
|
||||
|
||||
int discordanceEffect = 0;
|
||||
|
|
@ -910,7 +910,7 @@ namespace Server.Items
|
|||
if ( SkillHandlers.Discordance.GetEffect( m, ref discordanceEffect ) )
|
||||
bonus -= discordanceEffect;
|
||||
|
||||
if( EssenceOfWindSpell.IsDebuffed( m ) )
|
||||
if ( EssenceOfWindSpell.IsDebuffed( m ) )
|
||||
bonus -= EssenceOfWindSpell.GetSSIMalus( m );
|
||||
|
||||
if ( bonus > 60 )
|
||||
|
|
@ -985,12 +985,12 @@ namespace Server.Items
|
|||
{
|
||||
WeaponAbility a = WeaponAbility.GetCurrentAbility( attacker );
|
||||
|
||||
if( a != null && !a.OnBeforeSwing( attacker, defender ) )
|
||||
if ( a != null && !a.OnBeforeSwing( attacker, defender ) )
|
||||
WeaponAbility.ClearCurrentAbility( attacker );
|
||||
|
||||
SpecialMove move = SpecialMove.GetCurrentMove( attacker );
|
||||
|
||||
if( move != null && !move.OnBeforeSwing( attacker, defender ) )
|
||||
if ( move != null && !move.OnBeforeSwing( attacker, defender ) )
|
||||
SpecialMove.ClearCurrentMove( attacker );
|
||||
}
|
||||
|
||||
|
|
@ -1135,22 +1135,22 @@ namespace Server.Items
|
|||
double aosChance = parry / 800.0;
|
||||
|
||||
// Parry or Bushido over 100 grant a 5% bonus.
|
||||
if( parry >= 100.0 )
|
||||
if ( parry >= 100.0 )
|
||||
{
|
||||
chance += 0.05;
|
||||
aosChance += 0.05;
|
||||
}
|
||||
else if( bushido >= 100.0 )
|
||||
else if ( bushido >= 100.0 )
|
||||
{
|
||||
chance += 0.05;
|
||||
}
|
||||
|
||||
// Evasion grants a variable bonus post ML. 50% prior.
|
||||
if( Evasion.IsEvading( defender ) )
|
||||
if ( Evasion.IsEvading( defender ) )
|
||||
chance *= Evasion.GetParryScalar( defender );
|
||||
|
||||
// Low dexterity lowers the chance.
|
||||
if( defender.Dex < 80 )
|
||||
if ( defender.Dex < 80 )
|
||||
chance = chance * (20 + defender.Dex) / 100;
|
||||
|
||||
if ( chance > aosChance )
|
||||
|
|
@ -1216,15 +1216,15 @@ namespace Server.Items
|
|||
|
||||
Item armorItem;
|
||||
|
||||
if( positionChance < 0.07 )
|
||||
if ( positionChance < 0.07 )
|
||||
armorItem = defender.NeckArmor;
|
||||
else if( positionChance < 0.14 )
|
||||
else if ( positionChance < 0.14 )
|
||||
armorItem = defender.HandArmor;
|
||||
else if( positionChance < 0.28 )
|
||||
else if ( positionChance < 0.28 )
|
||||
armorItem = defender.ArmsArmor;
|
||||
else if( positionChance < 0.43 )
|
||||
else if ( positionChance < 0.43 )
|
||||
armorItem = defender.HeadArmor;
|
||||
else if( positionChance < 0.65 )
|
||||
else if ( positionChance < 0.65 )
|
||||
armorItem = defender.LegsArmor;
|
||||
else
|
||||
armorItem = defender.ChestArmor;
|
||||
|
|
@ -1251,15 +1251,15 @@ namespace Server.Items
|
|||
|
||||
Item armorItem;
|
||||
|
||||
if( chance < 0.07 )
|
||||
if ( chance < 0.07 )
|
||||
armorItem = defender.NeckArmor;
|
||||
else if( chance < 0.14 )
|
||||
else if ( chance < 0.14 )
|
||||
armorItem = defender.HandArmor;
|
||||
else if( chance < 0.28 )
|
||||
else if ( chance < 0.28 )
|
||||
armorItem = defender.ArmsArmor;
|
||||
else if( chance < 0.43 )
|
||||
else if ( chance < 0.43 )
|
||||
armorItem = defender.HeadArmor;
|
||||
else if( chance < 0.65 )
|
||||
else if ( chance < 0.65 )
|
||||
armorItem = defender.LegsArmor;
|
||||
else
|
||||
armorItem = defender.ChestArmor;
|
||||
|
|
@ -1402,12 +1402,12 @@ namespace Server.Items
|
|||
WeaponAbility a = WeaponAbility.GetCurrentAbility( attacker );
|
||||
SpecialMove move = SpecialMove.GetCurrentMove( attacker );
|
||||
|
||||
if( a != null )
|
||||
if ( a != null )
|
||||
{
|
||||
percentageBonus += (int)(a.DamageScalar * 100) - 100;
|
||||
}
|
||||
|
||||
if( move != null )
|
||||
if ( move != null )
|
||||
{
|
||||
percentageBonus += (int)(move.GetDamageScalar( attacker, defender ) * 100) - 100;
|
||||
}
|
||||
|
|
@ -1426,11 +1426,9 @@ namespace Server.Items
|
|||
|
||||
if ( !attacker.Player )
|
||||
{
|
||||
if ( defender is PlayerMobile )
|
||||
if ( defender is PlayerMobile pm )
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)defender;
|
||||
|
||||
if( pm.EnemyOfOneType != null && pm.EnemyOfOneType != attacker.GetType() )
|
||||
if ( pm.EnemyOfOneType != null && pm.EnemyOfOneType != attacker.GetType() )
|
||||
{
|
||||
percentageBonus += 100;
|
||||
}
|
||||
|
|
@ -1459,19 +1457,19 @@ namespace Server.Items
|
|||
|
||||
int packInstinctBonus = GetPackInstinctBonus( attacker, defender );
|
||||
|
||||
if( packInstinctBonus != 0 )
|
||||
if ( packInstinctBonus != 0 )
|
||||
{
|
||||
percentageBonus += packInstinctBonus;
|
||||
}
|
||||
|
||||
if( m_InDoubleStrike )
|
||||
if ( m_InDoubleStrike )
|
||||
{
|
||||
percentageBonus -= 10;
|
||||
}
|
||||
|
||||
TransformContext context = TransformationSpellHelper.GetContext( defender );
|
||||
|
||||
if( (m_Slayer == SlayerName.Silver || m_Slayer2 == SlayerName.Silver) && context != null && context.Spell is NecromancerSpell && context.Type != typeof( HorrificBeastSpell ) )
|
||||
if ( (m_Slayer == SlayerName.Silver || m_Slayer2 == SlayerName.Silver) && context != null && context.Spell is NecromancerSpell && context.Type != typeof( HorrificBeastSpell ) )
|
||||
{
|
||||
// Every necromancer transformation other than horrific beast takes an additional 25% damage
|
||||
percentageBonus += 25;
|
||||
|
|
@ -1481,12 +1479,12 @@ namespace Server.Items
|
|||
{
|
||||
PlayerMobile pmAttacker = (PlayerMobile) attacker;
|
||||
|
||||
if( pmAttacker.HonorActive && pmAttacker.InRange( defender, 1 ) )
|
||||
if ( pmAttacker.HonorActive && pmAttacker.InRange( defender, 1 ) )
|
||||
{
|
||||
percentageBonus += 25;
|
||||
}
|
||||
|
||||
if( pmAttacker.SentHonorContext != null && pmAttacker.SentHonorContext.Target == defender )
|
||||
if ( pmAttacker.SentHonorContext != null && pmAttacker.SentHonorContext.Target == defender )
|
||||
{
|
||||
percentageBonus += pmAttacker.SentHonorContext.PerfectionDamageBonus;
|
||||
}
|
||||
|
|
@ -1502,11 +1500,11 @@ namespace Server.Items
|
|||
damage = AOS.Scale( damage, 100 + percentageBonus );
|
||||
#endregion
|
||||
|
||||
if ( attacker is BaseCreature )
|
||||
((BaseCreature)attacker).AlterMeleeDamageTo( defender, ref damage );
|
||||
BaseCreature bcAtt = attacker as BaseCreature;
|
||||
BaseCreature bcDef = defender as BaseCreature;
|
||||
|
||||
if ( defender is BaseCreature )
|
||||
((BaseCreature)defender).AlterMeleeDamageFrom( attacker, ref damage );
|
||||
bcAtt?.AlterMeleeDamageTo( defender, ref damage );
|
||||
bcDef?.AlterMeleeDamageFrom( attacker, ref damage );
|
||||
|
||||
damage = AbsorbDamage( attacker, defender, damage );
|
||||
|
||||
|
|
@ -1531,9 +1529,7 @@ namespace Server.Items
|
|||
|
||||
if ( Core.ML && this is BaseRanged )
|
||||
{
|
||||
BaseQuiver quiver = attacker.FindItemOnLayer( Layer.Cloak ) as BaseQuiver;
|
||||
|
||||
if ( quiver != null )
|
||||
if ( attacker.FindItemOnLayer( Layer.Cloak ) is BaseQuiver quiver )
|
||||
quiver.AlterBowDamage( ref phys, ref fire, ref cold, ref pois, ref nrgy, ref chaos, ref direct );
|
||||
}
|
||||
|
||||
|
|
@ -1661,13 +1657,9 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
if ( attacker is VampireBatFamiliar )
|
||||
if ( attacker is VampireBatFamiliar bc )
|
||||
{
|
||||
BaseCreature bc = (BaseCreature)attacker;
|
||||
Mobile caster = bc.ControlMaster;
|
||||
|
||||
if ( caster == null )
|
||||
caster = bc.SummonMaster;
|
||||
Mobile caster = bc.ControlMaster ?? bc.SummonMaster;
|
||||
|
||||
if ( caster != null && caster.Map == bc.Map && caster.InRange( bc, 2 ) )
|
||||
caster.Hits += damage;
|
||||
|
|
@ -1729,20 +1721,14 @@ namespace Server.Items
|
|||
DoLowerDefense( attacker, defender );
|
||||
}
|
||||
|
||||
if ( attacker is BaseCreature )
|
||||
((BaseCreature)attacker).OnGaveMeleeAttack( defender );
|
||||
bcAtt?.OnGaveMeleeAttack( defender );
|
||||
bcDef?.OnGotMeleeAttack( attacker );
|
||||
|
||||
if ( defender is BaseCreature )
|
||||
((BaseCreature)defender).OnGotMeleeAttack( attacker );
|
||||
a?.OnHit( attacker, defender, damage );
|
||||
move?.OnHit( attacker, defender, damage );
|
||||
|
||||
if ( a != null )
|
||||
a.OnHit( attacker, defender, damage );
|
||||
|
||||
if ( move != null )
|
||||
move.OnHit( attacker, defender, damage );
|
||||
|
||||
if ( defender is IHonorTarget && ((IHonorTarget)defender).ReceivedHonorContext != null )
|
||||
((IHonorTarget)defender).ReceivedHonorContext.OnTargetHit( attacker );
|
||||
if ( defender is IHonorTarget it )
|
||||
it.ReceivedHonorContext?.OnTargetHit( attacker );
|
||||
|
||||
if ( !(this is BaseRanged) )
|
||||
{
|
||||
|
|
@ -1777,7 +1763,7 @@ namespace Server.Items
|
|||
|
||||
TransformContext context = TransformationSpellHelper.GetContext( attacker );
|
||||
|
||||
if( context != null && context.Spell is ReaperFormSpell )
|
||||
if ( context != null && context.Spell is ReaperFormSpell )
|
||||
damageBonus += ((ReaperFormSpell)context.Spell).SpellDamageBonus;
|
||||
}
|
||||
|
||||
|
|
@ -1930,11 +1916,11 @@ namespace Server.Items
|
|||
double scalar = Core.ML ? 1.0 : ( 11 - from.GetDistanceToSqrt( m ) ) / 10;
|
||||
double damage = GetBaseDamage( from );
|
||||
|
||||
if(scalar <= 0)
|
||||
if (scalar <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else if( scalar < 1.0 )
|
||||
else if ( scalar < 1.0 )
|
||||
{
|
||||
damage *= ( 11 - from.GetDistanceToSqrt( m ) ) / 10;
|
||||
}
|
||||
|
|
@ -1952,7 +1938,7 @@ namespace Server.Items
|
|||
SlayerEntry atkSlayer = SlayerGroup.GetEntryByName( atkWeapon.Slayer );
|
||||
SlayerEntry atkSlayer2 = SlayerGroup.GetEntryByName( atkWeapon.Slayer2 );
|
||||
|
||||
if( atkWeapon is ButchersWarCleaver && TalismanSlayer.Slays( TalismanSlayerName.Bovine, defender ) )
|
||||
if ( atkWeapon is ButchersWarCleaver && TalismanSlayer.Slays( TalismanSlayerName.Bovine, defender ) )
|
||||
return CheckSlayerResult.Slayer;
|
||||
|
||||
if ( atkSlayer != null && atkSlayer.Slays( defender ) || atkSlayer2 != null && atkSlayer2.Slays( defender ) )
|
||||
|
|
@ -1967,15 +1953,15 @@ namespace Server.Items
|
|||
{
|
||||
ISlayer defISlayer = Spellbook.FindEquippedSpellbook( defender );
|
||||
|
||||
if( defISlayer == null )
|
||||
if ( defISlayer == null )
|
||||
defISlayer = defender.Weapon as ISlayer;
|
||||
|
||||
if( defISlayer != null )
|
||||
if ( defISlayer != null )
|
||||
{
|
||||
SlayerEntry defSlayer = SlayerGroup.GetEntryByName( defISlayer.Slayer );
|
||||
SlayerEntry defSlayer2 = SlayerGroup.GetEntryByName( defISlayer.Slayer2 );
|
||||
|
||||
if( defSlayer != null && defSlayer.Group.OppositionSuperSlays( attacker ) || defSlayer2 != null && defSlayer2.Group.OppositionSuperSlays( attacker ) )
|
||||
if ( defSlayer != null && defSlayer.Group.OppositionSuperSlays( attacker ) || defSlayer2 != null && defSlayer2.Group.OppositionSuperSlays( attacker ) )
|
||||
return CheckSlayerResult.Opposition;
|
||||
}
|
||||
}
|
||||
|
|
@ -2003,7 +1989,7 @@ namespace Server.Items
|
|||
|
||||
public virtual void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
|
||||
{
|
||||
if( wielder is BaseCreature )
|
||||
if ( wielder is BaseCreature )
|
||||
{
|
||||
BaseCreature bc = (BaseCreature)wielder;
|
||||
|
||||
|
|
@ -2028,11 +2014,11 @@ namespace Server.Items
|
|||
|
||||
CraftResourceInfo resInfo = CraftResources.GetInfo( m_Resource );
|
||||
|
||||
if( resInfo != null )
|
||||
if ( resInfo != null )
|
||||
{
|
||||
CraftAttributeInfo attrInfo = resInfo.AttributeInfo;
|
||||
|
||||
if( attrInfo != null )
|
||||
if ( attrInfo != null )
|
||||
{
|
||||
int left = phys;
|
||||
|
||||
|
|
@ -2051,7 +2037,7 @@ namespace Server.Items
|
|||
|
||||
private int ApplyCraftAttributeElementDamage( int attrDamage, ref int element, int totalRemaining )
|
||||
{
|
||||
if( totalRemaining <= 0 )
|
||||
if ( totalRemaining <= 0 )
|
||||
return 0;
|
||||
|
||||
if ( attrDamage <= 0 )
|
||||
|
|
@ -2062,7 +2048,7 @@ namespace Server.Items
|
|||
if ( (appliedDamage + element) > 100 )
|
||||
appliedDamage = 100 - element;
|
||||
|
||||
if( appliedDamage > totalRemaining )
|
||||
if ( appliedDamage > totalRemaining )
|
||||
appliedDamage = totalRemaining;
|
||||
|
||||
element += appliedDamage;
|
||||
|
|
@ -2241,7 +2227,7 @@ namespace Server.Items
|
|||
int damageBonus = AosAttributes.GetValue( attacker, AosAttribute.WeaponDamage );
|
||||
|
||||
// Horrific Beast transformation gives a +25% bonus to damage.
|
||||
if( TransformationSpellHelper.UnderTransformation( attacker, typeof( HorrificBeastSpell ) ) )
|
||||
if ( TransformationSpellHelper.UnderTransformation( attacker, typeof( HorrificBeastSpell ) ) )
|
||||
damageBonus += 25;
|
||||
|
||||
// Divine Fury gives a +10% bonus to damage.
|
||||
|
|
@ -2593,10 +2579,10 @@ namespace Server.Items
|
|||
if ( GetSaveFlag( flags, SaveFlag.Slayer2 ) )
|
||||
writer.Write( (int)m_Slayer2 );
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.ElementalDamages ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.ElementalDamages ) )
|
||||
m_AosElementDamages.Serialize( writer );
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.EngravedText ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.EngravedText ) )
|
||||
writer.Write( (string) m_EngravedText );
|
||||
}
|
||||
|
||||
|
|
@ -2801,20 +2787,20 @@ namespace Server.Items
|
|||
if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) )
|
||||
m_PlayerConstructed = true;
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.SkillBonuses ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) )
|
||||
m_AosSkillBonuses = new AosSkillBonuses( this, reader );
|
||||
else
|
||||
m_AosSkillBonuses = new AosSkillBonuses( this );
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.Slayer2 ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.Slayer2 ) )
|
||||
m_Slayer2 = (SlayerName)reader.ReadInt();
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.ElementalDamages ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.ElementalDamages ) )
|
||||
m_AosElementDamages = new AosElementAttributes( this, reader );
|
||||
else
|
||||
m_AosElementDamages = new AosElementAttributes( this );
|
||||
|
||||
if( GetSaveFlag( flags, SaveFlag.EngravedText ) )
|
||||
if ( GetSaveFlag( flags, SaveFlag.EngravedText ) )
|
||||
m_EngravedText = reader.ReadString();
|
||||
|
||||
break;
|
||||
|
|
@ -3020,25 +3006,25 @@ namespace Server.Items
|
|||
int currentMax = 50;
|
||||
int hue = 0;
|
||||
|
||||
if( pois >= currentMax )
|
||||
if ( pois >= currentMax )
|
||||
{
|
||||
hue = 1267 + (pois - 50) / 10;
|
||||
currentMax = pois;
|
||||
}
|
||||
|
||||
if( fire >= currentMax )
|
||||
if ( fire >= currentMax )
|
||||
{
|
||||
hue = 1255 + (fire - 50) / 10;
|
||||
currentMax = fire;
|
||||
}
|
||||
|
||||
if( nrgy >= currentMax )
|
||||
if ( nrgy >= currentMax )
|
||||
{
|
||||
hue = 1273 + (nrgy - 50) / 10;
|
||||
currentMax = nrgy;
|
||||
}
|
||||
|
||||
if( cold >= currentMax )
|
||||
if ( cold >= currentMax )
|
||||
{
|
||||
hue = 1261 + (cold - 50) / 10;
|
||||
currentMax = cold;
|
||||
|
|
@ -3145,7 +3131,7 @@ namespace Server.Items
|
|||
if ( m_Quality == WeaponQuality.Exceptional )
|
||||
list.Add( 1060636 ); // exceptional
|
||||
|
||||
if( RequiredRace == Race.Elf )
|
||||
if ( RequiredRace == Race.Elf )
|
||||
list.Add( 1075086 ); // Elves Only
|
||||
|
||||
if ( ArtifactRarity > 0 )
|
||||
|
|
@ -3157,17 +3143,17 @@ namespace Server.Items
|
|||
if ( m_Poison != null && m_PoisonCharges > 0 )
|
||||
list.Add( 1062412 + m_Poison.Level, m_PoisonCharges.ToString() );
|
||||
|
||||
if( m_Slayer != SlayerName.None )
|
||||
if ( m_Slayer != SlayerName.None )
|
||||
{
|
||||
SlayerEntry entry = SlayerGroup.GetEntryByName( m_Slayer );
|
||||
if( entry != null )
|
||||
if ( entry != null )
|
||||
list.Add( entry.Title );
|
||||
}
|
||||
|
||||
if( m_Slayer2 != SlayerName.None )
|
||||
if ( m_Slayer2 != SlayerName.None )
|
||||
{
|
||||
SlayerEntry entry = SlayerGroup.GetEntryByName( m_Slayer2 );
|
||||
if( entry != null )
|
||||
if ( entry != null )
|
||||
list.Add( entry.Title );
|
||||
}
|
||||
|
||||
|
|
@ -3396,17 +3382,17 @@ namespace Server.Items
|
|||
|
||||
if ( m_Identified || from.AccessLevel >= AccessLevel.GameMaster )
|
||||
{
|
||||
if( m_Slayer != SlayerName.None )
|
||||
if ( m_Slayer != SlayerName.None )
|
||||
{
|
||||
SlayerEntry entry = SlayerGroup.GetEntryByName( m_Slayer );
|
||||
if( entry != null )
|
||||
if ( entry != null )
|
||||
attrs.Add( new EquipInfoAttribute( entry.Title ) );
|
||||
}
|
||||
|
||||
if( m_Slayer2 != SlayerName.None )
|
||||
if ( m_Slayer2 != SlayerName.None )
|
||||
{
|
||||
SlayerEntry entry = SlayerGroup.GetEntryByName( m_Slayer2 );
|
||||
if( entry != null )
|
||||
if ( entry != null )
|
||||
attrs.Add( new EquipInfoAttribute( entry.Title ) );
|
||||
}
|
||||
|
||||
|
|
@ -3419,7 +3405,7 @@ namespace Server.Items
|
|||
if ( m_AccuracyLevel != WeaponAccuracyLevel.Regular )
|
||||
attrs.Add( new EquipInfoAttribute( 1038010 + (int)m_AccuracyLevel ) );
|
||||
}
|
||||
else if( m_Slayer != SlayerName.None || m_Slayer2 != SlayerName.None || m_DurabilityLevel != WeaponDurabilityLevel.Regular || m_DamageLevel != WeaponDamageLevel.Regular || m_AccuracyLevel != WeaponAccuracyLevel.Regular )
|
||||
else if ( m_Slayer != SlayerName.None || m_Slayer2 != SlayerName.None || m_DurabilityLevel != WeaponDurabilityLevel.Regular || m_DamageLevel != WeaponDamageLevel.Regular || m_AccuracyLevel != WeaponAccuracyLevel.Regular )
|
||||
attrs.Add( new EquipInfoAttribute( 1038000 ) ); // Unidentified
|
||||
|
||||
if ( m_Poison != null && m_PoisonCharges > 0 )
|
||||
|
|
@ -3488,7 +3474,7 @@ namespace Server.Items
|
|||
else
|
||||
Attributes.WeaponDamage = 15;
|
||||
|
||||
if( Core.ML )
|
||||
if ( Core.ML )
|
||||
{
|
||||
Attributes.WeaponDamage += (int)(from.Skills.ArmsLore.Value / 20);
|
||||
|
||||
|
|
|
|||
|
|
@ -100,10 +100,10 @@ namespace Server.Items
|
|||
abyss.Opposition = new SlayerGroup[]{ elemental, fey };
|
||||
abyss.FoundOn = new Type[]{ typeof( BloodElemental ) };
|
||||
|
||||
if( Core.AOS )
|
||||
if ( Core.AOS )
|
||||
{
|
||||
abyss.Super = new SlayerEntry( SlayerName.Exorcism, typeof( AbysmalHorror ), typeof( ArcaneDaemon ), typeof( Balron ), typeof( BoneDemon ), typeof( ChaosDaemon ), typeof( Daemon ), typeof( SummonedDaemon ), typeof( DemonKnight ), typeof( Devourer ), typeof( EnslavedGargoyle ), typeof( FanDancer ), typeof( FireGargoyle ), typeof( Gargoyle ), typeof( GargoyleDestroyer ), typeof( GargoyleEnforcer ), typeof( Gibberling ), typeof( HordeMinion ), typeof( IceFiend ), typeof( Imp ), typeof( Impaler ), typeof( Moloch ), typeof( Oni ), typeof( Ravager ), typeof( Semidar ), typeof( StoneGargoyle ), typeof( Succubus ), typeof( TsukiWolf ) );
|
||||
|
||||
|
||||
abyss.Entries = new SlayerEntry[]
|
||||
{
|
||||
// Daemon Dismissal & Balron Damnation have been removed and moved up to super slayer on OSI.
|
||||
|
|
@ -204,4 +204,4 @@ namespace Server.Items
|
|||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue