diff --git a/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs b/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs index 364bba375..1f01bce5c 100644 --- a/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs +++ b/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs @@ -26,7 +26,9 @@ namespace Server.Commands.Generic public void Redirect( CommandEventArgs e ) { - BaseCommand command = Commands[e.Command]; + BaseCommand command = null; + + Commands.TryGetValue( e.Command, out command ); if ( command == null ) e.Mobile.SendMessage( "That is either an invalid command name or one that does not support this modifier." ); diff --git a/Scripts/Engines/AI/Creature/BaseCreature.cs b/Scripts/Engines/AI/Creature/BaseCreature.cs index cf4fef1ba..1a3b343a3 100644 --- a/Scripts/Engines/AI/Creature/BaseCreature.cs +++ b/Scripts/Engines/AI/Creature/BaseCreature.cs @@ -873,7 +873,7 @@ namespace Server.Mobiles { int oldHits = this.Hits; - if ( !this.Summoned && this.Controlled && 0.2 > Utility.RandomDouble() ) + if ( Core.AOS && !this.Summoned && this.Controlled && 0.2 > Utility.RandomDouble() ) amount = (int)(amount * BonusPetDamageScalar); if ( Spells.Necromancy.EvilOmenSpell.CheckEffect( this ) ) diff --git a/Scripts/Gumps/Properties/SetBodyGump.cs b/Scripts/Gumps/Properties/SetBodyGump.cs index 1296b1f25..a172b38db 100644 --- a/Scripts/Gumps/Properties/SetBodyGump.cs +++ b/Scripts/Gumps/Properties/SetBodyGump.cs @@ -71,7 +71,7 @@ namespace Server.Gumps AddImageTiled( 10, 35, 505, 283, 0xA40 ); AddAlphaRegion( 10, 35, 505, 283 ); - AddTypeButton( 10, 10, 1, "Monster", ModelBodyType.Monsters ); + AddTypeButton( 10, 10, 1, "Monster", ModelBodyType.Monsters ); AddTypeButton( 130, 10, 2, "Animal", ModelBodyType.Animals ); AddTypeButton( 250, 10, 3, "Marine", ModelBodyType.Sea ); AddTypeButton( 370, 10, 4, "Human", ModelBodyType.Human ); diff --git a/Scripts/Items/Armor/BaseArmor.cs b/Scripts/Items/Armor/BaseArmor.cs index bd6503ebc..aa9adb5b1 100644 --- a/Scripts/Items/Armor/BaseArmor.cs +++ b/Scripts/Items/Armor/BaseArmor.cs @@ -540,6 +540,12 @@ namespace Server.Items return false; } + if ( Ethics.Ethic.IsImbued( this ) ) + { + from.SendLocalizedMessage( 502440 ); // Scissors can not be used on that to produce anything. + return false; + } + CraftSystem system = DefTailoring.CraftSystem; CraftItem item = system.CraftItems.SearchFor( GetType() ); diff --git a/Scripts/Items/Food/Food.cs b/Scripts/Items/Food/Food.cs index b1d67a7cd..9e3b9cb2d 100644 --- a/Scripts/Items/Food/Food.cs +++ b/Scripts/Items/Food/Food.cs @@ -192,6 +192,7 @@ namespace Server.Items public BreadLoaf( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -224,6 +225,7 @@ namespace Server.Items public Bacon( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -256,6 +258,7 @@ namespace Server.Items public SlabOfBacon( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -292,6 +295,7 @@ namespace Server.Items public FishSteak( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -328,6 +332,7 @@ namespace Server.Items public CheeseWheel( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -364,6 +369,7 @@ namespace Server.Items public CheeseWedge( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -400,6 +406,7 @@ namespace Server.Items public CheeseSlice( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -432,6 +439,7 @@ namespace Server.Items public FrenchBread( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -465,6 +473,7 @@ namespace Server.Items public FriedEggs( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -497,6 +506,7 @@ namespace Server.Items public CookedBird( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -529,6 +539,7 @@ namespace Server.Items public RoastPig( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -561,6 +572,7 @@ namespace Server.Items public Sausage( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -593,6 +605,7 @@ namespace Server.Items public Ham( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -654,6 +667,7 @@ namespace Server.Items public Ribs( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1024,6 +1038,7 @@ namespace Server.Items public LambLeg( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1056,6 +1071,7 @@ namespace Server.Items public ChickenLeg( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1089,6 +1105,7 @@ namespace Server.Items public HoneydewMelon( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1122,6 +1139,7 @@ namespace Server.Items public YellowGourd( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1155,6 +1173,7 @@ namespace Server.Items public GreenGourd( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1188,6 +1207,7 @@ namespace Server.Items public EarOfCorn( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); @@ -1220,6 +1240,7 @@ namespace Server.Items public Turnip( Serial serial ) : base( serial ) { } + public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); diff --git a/Scripts/Items/Misc/Bola.cs b/Scripts/Items/Misc/Bola.cs index a4dc84a1d..04f6d5bf9 100644 --- a/Scripts/Items/Misc/Bola.cs +++ b/Scripts/Items/Misc/Bola.cs @@ -179,8 +179,6 @@ namespace Server.Items { } - - public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); diff --git a/Scripts/Items/Misc/BolaBall.cs b/Scripts/Items/Misc/BolaBall.cs index ea416699e..4aab33bd5 100644 --- a/Scripts/Items/Misc/BolaBall.cs +++ b/Scripts/Items/Misc/BolaBall.cs @@ -22,8 +22,6 @@ namespace Server.Items { } - - public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); diff --git a/Scripts/Items/Misc/IDurability.cs b/Scripts/Items/Misc/IDurability.cs index cd5005995..0425bbb9c 100644 --- a/Scripts/Items/Misc/IDurability.cs +++ b/Scripts/Items/Misc/IDurability.cs @@ -3,19 +3,19 @@ using Server; namespace Server.Items { - interface IDurability + interface IDurability { - int InitMinHits { get; } - int InitMaxHits { get; } + int InitMinHits { get; } + int InitMaxHits { get; } - int HitPoints { get; set; } - int MaxHitPoints { get; set; } + int HitPoints { get; set; } + int MaxHitPoints { get; set; } //Maybe a scale/unscale durability? } - interface IWearableDurability : IDurability + interface IWearableDurability : IDurability { - int OnHit( BaseWeapon weapon, int damageTaken ); + int OnHit( BaseWeapon weapon, int damageTaken ); } } \ No newline at end of file diff --git a/Scripts/Items/Misc/PublicMoongate.cs b/Scripts/Items/Misc/PublicMoongate.cs index ee8d41428..e1714aceb 100644 --- a/Scripts/Items/Misc/PublicMoongate.cs +++ b/Scripts/Items/Misc/PublicMoongate.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; using Server; -using Server.Gumps; -using Server.Network; -using Server.Mobiles; using Server.Commands; +using Server.Gumps; +using Server.Mobiles; +using Server.Network; +using Server.Spells; namespace Server.Items { @@ -61,7 +62,7 @@ namespace Server.Items m.SendLocalizedMessage( 1005561, "", 0x22 ); // Thou'rt a criminal and cannot escape so easily. return false; } - else if ( Server.Spells.SpellHelper.CheckCombat( m ) ) + else if ( SpellHelper.CheckCombat( m ) ) { m.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle?? return false; @@ -438,7 +439,7 @@ namespace Server.Items { m_Mobile.SendLocalizedMessage( 1005561, "", 0x22 ); // Thou'rt a criminal and cannot escape so easily. } - else if ( Server.Spells.SpellHelper.CheckCombat( m_Mobile ) ) + else if ( SpellHelper.CheckCombat( m_Mobile ) ) { m_Mobile.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle?? } diff --git a/Scripts/Items/Misc/Teleporter.cs b/Scripts/Items/Misc/Teleporter.cs index 7dd5bd37d..5ae4e84e0 100644 --- a/Scripts/Items/Misc/Teleporter.cs +++ b/Scripts/Items/Misc/Teleporter.cs @@ -1,12 +1,13 @@ using System; using Server; using Server.Network; +using Server.Spells; namespace Server.Items { public class Teleporter : Item { - private bool m_Active, m_Creatures; + private bool m_Active, m_Creatures, m_CombatCheck; private Point3D m_PointDest; private Map m_MapDest; private bool m_SourceEffect; @@ -70,6 +71,14 @@ namespace Server.Items set { m_Creatures = value; InvalidateProperties(); } } + + [CommandProperty( AccessLevel.GameMaster )] + public bool CombatCheck + { + get { return m_CombatCheck; } + set { m_CombatCheck = value; InvalidateProperties(); } + } + public override int LabelNumber{ get{ return 1026095; } } // teleporter [Constructable] @@ -92,6 +101,8 @@ namespace Server.Items m_PointDest = pointDest; m_MapDest = mapDest; m_Creatures = creatures; + + m_CombatCheck = false; } public override void GetProperties( ObjectPropertyList list ) @@ -178,6 +189,11 @@ namespace Server.Items { if ( !m_Creatures && !m.Player ) return true; + else if ( m_CombatCheck && SpellHelper.CheckCombat( m ) ) + { + m.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle?? + return true; + } StartTeleport( m ); return false; @@ -194,7 +210,9 @@ namespace Server.Items { base.Serialize( writer ); - writer.Write( (int) 2 ); // version + writer.Write( (int) 3 ); // version + + writer.Write( (bool) m_CombatCheck ); writer.Write( (bool) m_SourceEffect ); writer.Write( (bool) m_DestEffect ); @@ -216,6 +234,11 @@ namespace Server.Items switch ( version ) { + case 3: + { + m_CombatCheck = reader.ReadBool(); + goto case 2; + } case 2: { m_SourceEffect = reader.ReadBool(); diff --git a/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs b/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs index 9a2a3d770..75d729d39 100644 --- a/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs +++ b/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs @@ -261,7 +261,6 @@ namespace Server.Items Delete(); } - public static bool FullValidation( Map map, int x, int y ) { bool valid = ValidateDeepWater( map, x, y ); @@ -293,9 +292,7 @@ namespace Server.Items bool water = false; for( int i = 0; !water && i < m_WaterTiles.Length; i += 2 ) - { water = (tileID >= m_WaterTiles[i] && tileID <= m_WaterTiles[i + 1]); - } return water; } diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs b/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs index c1f1c13b1..a3567b1ee 100644 --- a/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs +++ b/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs @@ -70,7 +70,6 @@ namespace Server.Items if ( from.Alive && this.Movable ) list.Add( new ContextMenus.AddToSpellbookEntry() ); } - public override void OnDoubleClick( Mobile from ) {