Housing
- house commit has inappropiate cost for certain parts
http://www.uodemise.com/forum/showthread.php?t=136453
- houses should not be placable on roads
http://www.uodemise.com/forum/showthread.php?t=139597
Bushido
- lightning strike should consume extra mana if player walks
http://www.uodemise.com/forum/showthread.php?t=127699
Weapons
- frenzied whirlwind should properly flag combatants.
http://www.uodemise.com/forum/showthread.php?t=138625
Magery
- PolyMorph should not turn the caster grey/criminal
http://www.uodemise.com/forum/showthread.php?t=116438
- Paralyze should interfere in casting paladin spells.
http://www.uodemise.com/forum/showthread.php?t=120742
Spellweaving
- Ethereal Voyage should not break when attempting to tame dragons, nightmares, etc.
http://www.uodemise.com/forum/showthread.php?t=135349
Misc
- refactor DrawRessource() to DrawResource()
http://www.uodemise.com/forum/showthread.php?t=127202
- random blood "spatter" itemid during combat: more visible blood.
http://www.uodemise.com/forum/showthread.php?t=140092
Taming
- Animal lore should check for skill modifiers when using lore on mobiles.
http://www.uodemise.com/forum/showthread.php?t=140658
Necromany
- Wraithform should allow push-through without stam loss always.
http://www.uodemise.com/forum/showthread.php?t=117126
- Wraithform mana leech should not lower the victim's mana + small cleanup to spellhelper.doleech()
http://www.uodemise.com/forum/showthread.php?t=120238
Chivalry
- Noble Sacrifice should work in houses. RunUO's does not.
http://www.uodemise.com/forum/showthread.php?t=122819
NCP Vendors
- Add necro regs for vendors to buy from players.
http://www.uodemise.com/forum/showthread.php?t=136435
This commit is contained in:
parent
d3e95b7e53
commit
1d74d05af4
16 changed files with 175 additions and 69 deletions
|
|
@ -974,23 +974,24 @@ namespace Server.Spells
|
|||
public static void DoLeech( int damageGiven, Mobile from, Mobile target )
|
||||
{
|
||||
TransformContext context = TransformationSpellHelper.GetContext( from );
|
||||
if ( context != null && context.Type == typeof( WraithFormSpell ) )
|
||||
|
||||
if ( context != null ) /* cleanup */
|
||||
{
|
||||
int wraithLeech = ( 5 + (int)( ( 15 * from.Skills.SpiritSpeak.Value ) / 100 ) ); // Wraith form gives 5-20% mana leech
|
||||
int manaLeech = AOS.Scale( damageGiven, wraithLeech );
|
||||
if ( manaLeech != 0 )
|
||||
if ( context.Type == typeof( WraithFormSpell ) )
|
||||
{
|
||||
// Mana leeched by the Wraith Form spell is actually stolen, not just leeched.
|
||||
target.Mana -= manaLeech;
|
||||
from.Mana += manaLeech;
|
||||
from.PlaySound( 0x44D );
|
||||
//from.SendMessage(String.Format("You Leeched {0} Mana", manaLeech));
|
||||
int wraithLeech = ( 5 + (int)( ( 15 * from.Skills.SpiritSpeak.Value ) / 100 ) ); // Wraith form gives 5-20% mana leech
|
||||
int manaLeech = AOS.Scale( damageGiven, wraithLeech );
|
||||
if ( manaLeech != 0 )
|
||||
{
|
||||
from.Mana += manaLeech;
|
||||
from.PlaySound( 0x44D );
|
||||
}
|
||||
}
|
||||
else if ( context.Type == typeof( VampiricEmbraceSpell ) )
|
||||
{
|
||||
from.Hits += AOS.Scale( damageGiven, 20 );
|
||||
from.PlaySound( 0x44D );
|
||||
}
|
||||
}
|
||||
if ( context != null && context.Type == typeof( VampiricEmbraceSpell ) )
|
||||
{
|
||||
from.Hits += AOS.Scale( damageGiven, 20 );
|
||||
from.PlaySound( 0x44D );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,44 +25,57 @@ namespace Server.Spells.Bushido
|
|||
return 50;
|
||||
}
|
||||
|
||||
public override bool Validate(Mobile from)
|
||||
{
|
||||
bool isValid=base.Validate(from);
|
||||
if (isValid)
|
||||
{
|
||||
PlayerMobile ThePlayer = from as PlayerMobile;
|
||||
ThePlayer.ExecutesLightningStrike = BaseMana;
|
||||
}
|
||||
return isValid;
|
||||
}
|
||||
|
||||
public override bool IgnoreArmor( Mobile attacker )
|
||||
{
|
||||
double bushido = attacker.Skills[SkillName.Bushido].Value;
|
||||
|
||||
double criticalChance = (bushido * bushido) / 72000.0;
|
||||
|
||||
return ( criticalChance >= Utility.RandomDouble() );
|
||||
}
|
||||
|
||||
public override bool OnBeforeSwing( Mobile attacker, Mobile defender )
|
||||
{
|
||||
return Validate( attacker ) && CheckMana( attacker, true );
|
||||
/* no mana drain before actual hit */
|
||||
bool enoughMana = CheckMana(attacker, false);
|
||||
return Validate(attacker);
|
||||
}
|
||||
|
||||
public override bool ValidatesDuringHit { get { return false; } }
|
||||
|
||||
public override void OnHit( Mobile attacker, Mobile defender, int damage )
|
||||
{
|
||||
//Validation in OnBeforeSwing
|
||||
|
||||
ClearCurrentMove( attacker );
|
||||
|
||||
attacker.SendLocalizedMessage( 1063168 ); // You attack with lightning precision!
|
||||
defender.SendLocalizedMessage( 1063169 ); // Your opponent's quick strike causes extra damage!
|
||||
|
||||
defender.FixedParticles( 0x3818, 1, 11, 0x13A8, 0, 0, EffectLayer.Waist );
|
||||
defender.PlaySound( 0x51D );
|
||||
|
||||
CheckGain( attacker );
|
||||
|
||||
SetContext( attacker );
|
||||
ClearCurrentMove(attacker);
|
||||
if (CheckMana(attacker, true))
|
||||
{
|
||||
attacker.SendLocalizedMessage(1063168); // You attack with lightning precision!
|
||||
defender.SendLocalizedMessage(1063169); // Your opponent's quick strike causes extra damage!
|
||||
defender.FixedParticles(0x3818, 1, 11, 0x13A8, 0, 0, EffectLayer.Waist);
|
||||
defender.PlaySound(0x51D);
|
||||
CheckGain(attacker);
|
||||
SetContext(attacker);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnMiss( Mobile attacker, Mobile defender )
|
||||
{
|
||||
ClearCurrentMove( attacker );
|
||||
|
||||
SetContext( attacker );
|
||||
}
|
||||
|
||||
public override void OnClearMove( Mobile attacker )
|
||||
{
|
||||
PlayerMobile ThePlayer = attacker as PlayerMobile; // this can be deletet if the PlayerMobile parts are moved to Server.Mobile
|
||||
ThePlayer.ExecutesLightningStrike = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace Server.Spells.Chivalry
|
|||
if ( m is BaseCreature && ((BaseCreature)m).IsAnimatedDead )
|
||||
continue;
|
||||
|
||||
if ( Caster != m && Caster.CanBeBeneficial( m, false, true ) && !(m is Golem) )
|
||||
if ( Caster != m && m.InLOS( Caster ) && Caster.CanBeBeneficial( m, false, true ) && !(m is Golem) )
|
||||
targets.Add( m );
|
||||
}
|
||||
|
||||
|
|
@ -72,9 +72,6 @@ namespace Server.Spells.Chivalry
|
|||
{
|
||||
Caster.SendLocalizedMessage( 1010395 ); // The veil of death in this area is too strong and resists thy efforts to restore life.
|
||||
}
|
||||
else if( Core.ML && m.Region != null && m.Region.IsPartOf( typeof( HouseRegion ) ) )
|
||||
{
|
||||
}
|
||||
else if( resChance > Utility.RandomDouble() )
|
||||
{
|
||||
m.FixedParticles( 0x375A, 1, 15, 5005, 5, 3, EffectLayer.Head );
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using Server.Mobiles;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
using Server.Spells.Chivalry;
|
||||
|
||||
namespace Server.Spells.Fifth
|
||||
{
|
||||
|
|
@ -33,7 +34,7 @@ namespace Server.Spells.Fifth
|
|||
{
|
||||
Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
|
||||
}
|
||||
else if ( Core.AOS && (m.Frozen || m.Paralyzed || (m.Spell != null && m.Spell.IsCasting)) )
|
||||
else if ( Core.AOS && (m.Frozen || m.Paralyzed || (m.Spell != null && m.Spell.IsCasting && !(m.Spell is PaladinSpell))) )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1061923 ); // The target is already frozen.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Collections;
|
|||
using Server.Network;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Spells.Necromancy
|
||||
{
|
||||
|
|
@ -36,8 +37,17 @@ namespace Server.Spells.Necromancy
|
|||
|
||||
public override void DoEffect( Mobile m )
|
||||
{
|
||||
if ( m is PlayerMobile )
|
||||
((PlayerMobile)m).IgnoreMobiles = true;
|
||||
|
||||
m.PlaySound( 0x17F );
|
||||
m.FixedParticles( 0x374A, 1, 15, 9902, 1108, 4, EffectLayer.Waist );
|
||||
}
|
||||
|
||||
public override void RemoveEffect( Mobile m )
|
||||
{
|
||||
if ( m is PlayerMobile && m.AccessLevel == AccessLevel.Player )
|
||||
((PlayerMobile)m).IgnoreMobiles = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue