some stupidity fixes, some other stuffs
This commit is contained in:
parent
71e80d5949
commit
235ce238cd
9 changed files with 172 additions and 26 deletions
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue