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.
}
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.
}
else if ( Charges > 0 )
else if( Charges > 0 )
{
from.Animate( 34, 7, 1, true, false, 0 );
from.PlaySound( 0xFF );

View file

@ -260,6 +260,8 @@ namespace Server.Engines.VeteranRewards
new RewardEntry( monsterStatues, 1006035, typeof( MonsterStatuette ), MonsterStatuetteType.Ratman ),
new RewardEntry( monsterStatues, 1006036, typeof( MonsterStatuette ), MonsterStatuetteType.Skeleton ),
new RewardEntry( monsterStatues, 1006037, typeof( MonsterStatuette ), MonsterStatuetteType.Troll )
//TODO: RedSoulstone
//Need to reorganize this to OSI.
} ),
new RewardList( RewardInterval, 2, new RewardEntry[]
{
@ -318,6 +320,10 @@ namespace Server.Engines.VeteranRewards
new RewardEntry( etherealSteeds, 1049748, typeof( EtherealBeetle ) )
/*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 )
{
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 )

View file

@ -8,6 +8,8 @@ namespace Server.Items
{
public class SoulStone : Item
{
public override int LabelNumber { get { return 1030899; } } // soulstone
private int m_ActiveItemID;
private int m_InactiveItemID;
@ -874,4 +876,86 @@ namespace Server.Items
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.DefaultStamRate = TimeSpan.FromSeconds( 7.0 );
Mobile.DefaultManaRate = TimeSpan.FromSeconds( 7.0 );
//TODO: Pub 42 regen limits
Mobile.ManaRegenRateHandler = new RegenRateHandler( Mobile_ManaRegenRate );
@ -68,12 +67,15 @@ namespace Server.Misc
points += from.Skills[SkillName.Ninjitsu].Fixed / 300;
//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;
if ( 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)) );
}
@ -86,16 +88,21 @@ namespace Server.Misc
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 ) ) )
points += 15;
cappedPoints += 15;
if ( CheckAnimal( from, typeof( Kirin ) ) )
points += 20;
cappedPoints += 20;
if ( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan )
points += 40;
if( Core.ML && from is PlayerMobile )
cappedPoints = Math.Min( cappedPoints, 24 );
points += cappedPoints;
if ( 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);
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 ) ) )
totalPoints += 3;
cappedPoints += 3;
else if ( CheckTransform( from, typeof( LichFormSpell ) ) )
totalPoints += 13;
cappedPoints += 13;
if ( (from is BaseCreature && ((BaseCreature)from).IsParagon) || from is Leviathan )
totalPoints += 40;
if( Core.ML && from is PlayerMobile )
cappedPoints = Math.Min( cappedPoints, 18 );
totalPoints += cappedPoints;
if ( totalPoints < -1 )
totalPoints = -1;

View file

@ -273,6 +273,8 @@ namespace Server.Mobiles
}
}
public virtual int EtherealHue { get { return 0x4001; } }
public void UnmountMe()
{
Container bp = m_Rider.Backpack;
@ -281,7 +283,7 @@ namespace Server.Mobiles
Layer = Layer.Invalid;
Movable = true;
if ( Hue == 0x4001 )
if( Hue == EtherealHue )
Hue = 0;
if ( bp != null )
@ -310,7 +312,7 @@ namespace Server.Mobiles
Movable = false;
if ( Hue == 0 )
Hue = 0x4001;
Hue = EtherealHue;
ProcessDelta();
m_Rider.ProcessDelta();
@ -674,4 +676,36 @@ namespace Server.Mobiles
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 );
}
public override bool NewGuildDisplay { get { return Server.Guilds.Guild.NewGuildSystem; } }
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );

View file

@ -34,9 +34,9 @@ namespace Server.Spells.Bushido
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.
return false;
}

View file

@ -1084,13 +1084,22 @@ namespace Server
else
title = title.Trim();
if( title.Length > 0 )
list.Add( "{0}, {1} Guild{2}", Utility.FixHtml( title ), Utility.FixHtml( guild.Name ), type );
if( NewGuildDisplay && title.Length > 0 )
{
list.Add( "{0}, {1}", Utility.FixHtml( title ), Utility.FixHtml( guild.Name ) );
}
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 )
{
AddNameProperties( list );