- Future ML craftables added to the special repair list until the craft system is updated.

- Items can now be repaired while wearing them.
- Items can now be fortified while wearing them.
- Fixed repair deed messages not sending.
- Sound effect added to powder of fortifying.
- Map issue for fishing and SOSs fixed, where it would not allow fishing in empty resource banks when not on the target SOS map.
- Added proximity spawner.
- Improved spawner mouseover menu, now also shows types set on the spawner which are not yet spawned.
- Fixed spawners only deleting half of their spawned objects when deleted.
- Added the ability to set TextDefinition objects in the props gump.
- WaitTeleporters now round delays to nearest in the remaining time messages.
- Updated TextDefinition to be more usable; made it parsable from string and added safe serialization/deserialization methods.
- Improved checking whether a mobile can flee.
- Monsters that give ML minor artifacts will no longer flee when low on hits (like paragons).
- Monsters that give ML minor artifacts will no longer spawn as paragon.
- Fixed issue with pets not eating certain foods.
- AI and targeting fixes for Red Death, Pyre and Swoop.
- Fame and karma added to Rend.
- Swoop corrected to have 0 karma.
- Stat and skill tweaks for Putrefier.
- Changelings will no longer show their fame title when morphed.
- Added travel restrictions for ML dungeons.
- Fixed issue of travel restriction message displaying twice.
- Monster teleporting is no longer affected by region travel restrictions.
This commit is contained in:
eos 2012-03-07 18:59:52 +00:00
parent 4bcde77cc2
commit a0e13d5007
25 changed files with 432 additions and 140 deletions

View file

@ -592,16 +592,16 @@ namespace Server.Items
{
if ( ts.TotalHours >= 1 )
{
int h = (int)ts.TotalHours;
int h = (int)Math.Round( ts.TotalHours );
return String.Format( "{0} hour{1}", h, ( h == 1 ) ? "" : "s" );
}
else if ( ts.TotalMinutes >= 1 )
{
int m = (int)ts.TotalMinutes;
int m = (int)Math.Round( ts.TotalMinutes );
return String.Format( "{0} minute{1}", m, ( m == 1 ) ? "" : "s" );
}
int s = Math.Max( (int)ts.TotalSeconds, 0 );
int s = Math.Max( (int)Math.Round( ts.TotalSeconds ), 0 );
return String.Format( "{0} second{1}", s, ( s == 1 ) ? "" : "s" );
}

View file

@ -19,7 +19,7 @@ namespace Server.Items
public bool ShowUsesRemaining{ get{ return true; } set{} }
public override int LabelNumber{ get{ return 1049082; } } // powder of temperament
public override int LabelNumber{ get{ return 1049082; } } // powder of fortifying
[Constructable]
public PowderOfTemperament() : this( 10 )
@ -117,7 +117,7 @@ namespace Server.Items
return;
}
if ( item.IsChildOf( from.Backpack ) && m_Powder.IsChildOf( from.Backpack ) )
if ( ( item.IsChildOf( from.Backpack ) || ( Core.ML && item.Parent == from ) ) && m_Powder.IsChildOf( from.Backpack ) )
{
int origMaxHP = wearable.MaxHitPoints;
int origCurHP = wearable.HitPoints;
@ -146,12 +146,13 @@ namespace Server.Items
if ( wearable.MaxHitPoints > origMaxHP )
{
from.SendLocalizedMessage( 1049084 ); // You successfully use the powder on the item.
from.PlaySound( 0x247 );
--m_Powder.UsesRemaining;
if ( m_Powder.UsesRemaining <= 0 )
{
from.SendLocalizedMessage( 1049086 ); // You have used up your powder of temperament.
from.SendLocalizedMessage( 1049086 ); // You have used up your powder of fortifying.
m_Powder.Delete();
}
}

View file

@ -78,7 +78,7 @@ namespace Server.Items
m_Type = ScriptCompiler.FindTypeByFullName( reader.ReadString(), false );
if ( GetSaveFlag( flags, SaveFlag.Name ) )
m_Name = new TextDefinition( reader );
m_Name = TextDefinition.Deserialize( reader );
if ( GetSaveFlag( flags, SaveFlag.Amount ) )
m_Amount = reader.ReadEncodedInt();
@ -128,7 +128,7 @@ namespace Server.Items
writer.Write( m_Type.FullName );
if ( GetSaveFlag( flags, SaveFlag.Name ) )
m_Name.Serialize( writer );
TextDefinition.Serialize( writer, m_Name );
if ( GetSaveFlag( flags, SaveFlag.Amount ) )
writer.WriteEncodedInt( m_Amount );