some stupidity fixes, some other stuffs

This commit is contained in:
asayre 2006-09-02 23:58:47 +00:00
parent 71e80d5949
commit 235ce238cd
9 changed files with 172 additions and 26 deletions

View file

@ -66,11 +66,15 @@ namespace Server.Engines.Quests
{ {
SendLocalizedMessageTo( from, 500309 ); // Nothing Happens. SendLocalizedMessageTo( from, 500309 ); // Nothing Happens.
} }
else if ( m_PlayTimer != null ) else if( Core.ML && from.Map != Map.Trammel && from.Map != Map.Malas )
{
from.SendLocalizedMessage( 1076154 ); // You can only use this in Trammel and Malas.
}
else if( m_PlayTimer != null )
{ {
SendLocalizedMessageTo( from, 1042144 ); // This is currently in use. SendLocalizedMessageTo( from, 1042144 ); // This is currently in use.
} }
else if ( Charges > 0 ) else if( Charges > 0 )
{ {
from.Animate( 34, 7, 1, true, false, 0 ); from.Animate( 34, 7, 1, true, false, 0 );
from.PlaySound( 0xFF ); from.PlaySound( 0xFF );

View file

@ -260,6 +260,8 @@ namespace Server.Engines.VeteranRewards
new RewardEntry( monsterStatues, 1006035, typeof( MonsterStatuette ), MonsterStatuetteType.Ratman ), new RewardEntry( monsterStatues, 1006035, typeof( MonsterStatuette ), MonsterStatuetteType.Ratman ),
new RewardEntry( monsterStatues, 1006036, typeof( MonsterStatuette ), MonsterStatuetteType.Skeleton ), new RewardEntry( monsterStatues, 1006036, typeof( MonsterStatuette ), MonsterStatuetteType.Skeleton ),
new RewardEntry( monsterStatues, 1006037, typeof( MonsterStatuette ), MonsterStatuetteType.Troll ) new RewardEntry( monsterStatues, 1006037, typeof( MonsterStatuette ), MonsterStatuetteType.Troll )
//TODO: RedSoulstone
//Need to reorganize this to OSI.
} ), } ),
new RewardList( RewardInterval, 2, new RewardEntry[] new RewardList( RewardInterval, 2, new RewardEntry[]
{ {
@ -318,6 +320,10 @@ namespace Server.Engines.VeteranRewards
new RewardEntry( etherealSteeds, 1049748, typeof( EtherealBeetle ) ) new RewardEntry( etherealSteeds, 1049748, typeof( EtherealBeetle ) )
/*new RewardEntry( houseAddOns, 0, typeof( AnkhDecoration ) )*/ /*new RewardEntry( houseAddOns, 0, typeof( AnkhDecoration ) )*/
} ), } ),
//TODO: 6th year player statue MArkers
//TODO: 7th year Decorative CAnnon
//TODO: 8th year Weapon Engraving Tool
//TODO: 9th year Ridable polar bear
}; };
} }

View file

@ -20,11 +20,6 @@ namespace Server.Items
public override void OnDoubleClick( Mobile from ) public override void OnDoubleClick( Mobile from )
{ {
Fishing.System.BeginHarvesting( from, this ); Fishing.System.BeginHarvesting( from, this );
Item item = from.FindItemOnLayer( Layer.OneHanded );
if( item != null )
from.RemoveItem( item );
} }
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list ) public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )

View file

@ -8,6 +8,8 @@ namespace Server.Items
{ {
public class SoulStone : Item public class SoulStone : Item
{ {
public override int LabelNumber { get { return 1030899; } } // soulstone
private int m_ActiveItemID; private int m_ActiveItemID;
private int m_InactiveItemID; private int m_InactiveItemID;
@ -874,4 +876,86 @@ namespace Server.Items
public bool ShowUsesRemaining{ get{ return true; } set{} } public bool ShowUsesRemaining{ get{ return true; } set{} }
} }
[Flipable]
public class BlueSoulstone : SoulStone
{
[Constructable]
public BlueSoulstone()
: this( null )
{
}
[Constructable]
public BlueSoulstone( string account )
: base( account, 0x2ADC, 0x2ADD )
{
}
public BlueSoulstone( Serial serial )
: base( serial )
{
}
public void Flip()
{
switch( ItemID )
{
case 0x2ADC: ItemID = 0x2AEC; break;
case 0x2ADD: ItemID = 0x2AED; break;
case 0x2AEC: ItemID = 0x2ADC; break;
case 0x2AED: ItemID = 0x2ADD; break;
}
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
public class RedSoulstone : SoulStone
{
[Constructable]
public RedSoulstone()
: this( null )
{
}
[Constructable]
public RedSoulstone( string account )
: base( account, 0x32F3, 0x32F4 )
{
}
public RedSoulstone( Serial serial )
: base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
} }

View file

@ -16,7 +16,6 @@ namespace Server.Misc
Mobile.DefaultHitsRate = TimeSpan.FromSeconds( 11.0 ); Mobile.DefaultHitsRate = TimeSpan.FromSeconds( 11.0 );
Mobile.DefaultStamRate = TimeSpan.FromSeconds( 7.0 ); Mobile.DefaultStamRate = TimeSpan.FromSeconds( 7.0 );
Mobile.DefaultManaRate = TimeSpan.FromSeconds( 7.0 ); Mobile.DefaultManaRate = TimeSpan.FromSeconds( 7.0 );
//TODO: Pub 42 regen limits
Mobile.ManaRegenRateHandler = new RegenRateHandler( Mobile_ManaRegenRate ); Mobile.ManaRegenRateHandler = new RegenRateHandler( Mobile_ManaRegenRate );
@ -68,12 +67,15 @@ namespace Server.Misc
points += from.Skills[SkillName.Ninjitsu].Fixed / 300; points += from.Skills[SkillName.Ninjitsu].Fixed / 300;
//TODO: What's the new increased rate? //TODO: What's the new increased rate?
if( Core.ML && from.Race == Race.Human ) if( Core.ML && from.Race == Race.Human ) //Is this affected by the cap?
points += 2; points += 2;
if ( points < 0 ) if ( points < 0 )
points = 0; points = 0;
if( Core.ML && from is PlayerMobile ) //does racial bonus go before/after?
points = Math.Min ( points, 18 );
return TimeSpan.FromSeconds( 1.0 / (0.1 * (1 + points)) ); return TimeSpan.FromSeconds( 1.0 / (0.1 * (1 + points)) );
} }
@ -86,16 +88,21 @@ namespace Server.Misc
int points =(int)(from.Skills[SkillName.Focus].Value * 0.1); int points =(int)(from.Skills[SkillName.Focus].Value * 0.1);
points += AosAttributes.GetValue( from, AosAttribute.RegenStam ); if( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan )
points += 40;
int cappedPoints = AosAttributes.GetValue( from, AosAttribute.RegenStam );
if ( CheckTransform( from, typeof( VampiricEmbraceSpell ) ) ) if ( CheckTransform( from, typeof( VampiricEmbraceSpell ) ) )
points += 15; cappedPoints += 15;
if ( CheckAnimal( from, typeof( Kirin ) ) ) if ( CheckAnimal( from, typeof( Kirin ) ) )
points += 20; cappedPoints += 20;
if ( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan ) if( Core.ML && from is PlayerMobile )
points += 40; cappedPoints = Math.Min( cappedPoints, 24 );
points += cappedPoints;
if ( points < -1 ) if ( points < -1 )
points = -1; points = -1;
@ -129,15 +136,20 @@ namespace Server.Misc
double totalPoints = focusPoints + medPoints + (from.Meditating ? (medPoints > 13.0 ? 13.0 : medPoints) : 0.0); double totalPoints = focusPoints + medPoints + (from.Meditating ? (medPoints > 13.0 ? 13.0 : medPoints) : 0.0);
totalPoints += AosAttributes.GetValue( from, AosAttribute.RegenMana ); if( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan )
totalPoints += 40;
int cappedPoints = AosAttributes.GetValue( from, AosAttribute.RegenMana );
if ( CheckTransform( from, typeof( VampiricEmbraceSpell ) ) ) if ( CheckTransform( from, typeof( VampiricEmbraceSpell ) ) )
totalPoints += 3; cappedPoints += 3;
else if ( CheckTransform( from, typeof( LichFormSpell ) ) ) else if ( CheckTransform( from, typeof( LichFormSpell ) ) )
totalPoints += 13; cappedPoints += 13;
if ( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan ) if( Core.ML && from is PlayerMobile )
totalPoints += 40; cappedPoints = Math.Min( cappedPoints, 18 );
totalPoints += cappedPoints;
if ( totalPoints < -1 ) if ( totalPoints < -1 )
totalPoints = -1; totalPoints = -1;

View file

@ -273,6 +273,8 @@ namespace Server.Mobiles
} }
} }
public virtual int EtherealHue { get { return 0x4001; } }
public void UnmountMe() public void UnmountMe()
{ {
Container bp = m_Rider.Backpack; Container bp = m_Rider.Backpack;
@ -281,7 +283,7 @@ namespace Server.Mobiles
Layer = Layer.Invalid; Layer = Layer.Invalid;
Movable = true; Movable = true;
if ( Hue == 0x4001 ) if( Hue == EtherealHue )
Hue = 0; Hue = 0;
if ( bp != null ) if ( bp != null )
@ -310,7 +312,7 @@ namespace Server.Mobiles
Movable = false; Movable = false;
if ( Hue == 0 ) if ( Hue == 0 )
Hue = 0x4001; Hue = EtherealHue;
ProcessDelta(); ProcessDelta();
m_Rider.ProcessDelta(); m_Rider.ProcessDelta();
@ -674,4 +676,36 @@ namespace Server.Mobiles
Name = null; Name = null;
} }
} }
public class ChargerOfTheFallen : EtherealMount
{
public override int LabelNumber { get { return 1074816; } } // Charger of the Fallen Statuette
[Constructable]
public ChargerOfTheFallen()
: base( 0x2D9C, 0x3E92 )
{
}
public override int EtherealHue { get { return 0; } }
public ChargerOfTheFallen( Serial serial )
: base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
} }

View file

@ -2769,6 +2769,8 @@ namespace Server.Mobiles
BaseHouse.HandleDeletion( this ); BaseHouse.HandleDeletion( this );
} }
public override bool NewGuildDisplay { get { return Server.Guilds.Guild.NewGuildSystem; } }
public override void GetProperties( ObjectPropertyList list ) public override void GetProperties( ObjectPropertyList list )
{ {
base.GetProperties( list ); base.GetProperties( list );

View file

@ -34,9 +34,9 @@ namespace Server.Spells.Bushido
if( weap != null ) if( weap != null )
{ {
if( Core.ML && Caster.Skills[weap.Skill].Value < 50 ) if( Core.ML && Caster.Skills[weap.Skill].Base < 50 )
{ {
//Does UBW affect this? //UBW and Mage weapon have no bearing on this, nor do skill items and such.
Caster.SendLocalizedMessage( 1076206 ); // Your skill with your equipped weapon must be 50 or higher to use Evasion. Caster.SendLocalizedMessage( 1076206 ); // Your skill with your equipped weapon must be 50 or higher to use Evasion.
return false; return false;
} }

View file

@ -1084,13 +1084,22 @@ namespace Server
else else
title = title.Trim(); title = title.Trim();
if( title.Length > 0 ) if( NewGuildDisplay && title.Length > 0 )
list.Add( "{0}, {1} Guild{2}", Utility.FixHtml( title ), Utility.FixHtml( guild.Name ), type ); {
list.Add( "{0}, {1}", Utility.FixHtml( title ), Utility.FixHtml( guild.Name ) );
}
else else
list.Add( Utility.FixHtml( guild.Name ) ); {
if( title.Length > 0 )
list.Add( "{0}, {1} Guild{2}", Utility.FixHtml( title ), Utility.FixHtml( guild.Name ), type );
else
list.Add( Utility.FixHtml( guild.Name ) );
}
} }
} }
public virtual bool NewGuildDisplay { get { return false; } }
public virtual void GetProperties( ObjectPropertyList list ) public virtual void GetProperties( ObjectPropertyList list )
{ {
AddNameProperties( list ); AddNameProperties( list );